【发布时间】:2015-07-10 10:30:48
【问题描述】:
我目前有以下 EAV 表:
id
field_name
field_value
还有一张标准桌子:
id
first_name
last_name
对于与 ID 匹配的每个值,我将标准表加入到 EAV 表中,因此我的查询如下所示:
SELECT id, first_name, last_name, fieldname1, fieldname2
FROM standard_table
LEFT JOIN EAV AS fieldname1 ON
(fieldname1.id = standard_table.id AND fieldname1.field_name = 'fieldname1')
LEFT JOIN EAV AS fieldname2 ON
(fieldname2.id = standard_table.id AND fieldname2.field_name = 'fieldname2');
这一直运行良好,直到今天我的 EAV 表中有 62 个自定义字段,这意味着我的查询连接到 62 个表,因此达到 MySQL 表连接限制并失败。
整个查询似乎是一种不好的方式,我该如何重写它以便更快并且不需要 62 个表连接。
【问题讨论】:
-
如果你展示了你需要的输出,那么可以得到更好的帮助。
标签: php mysql join entity-attribute-value