Php mysql 61表连接限制

Php mysql 61表连接限制,php,mysql,yii,Php,Mysql,Yii,先驱:也许我的db设计太差劲了 我有一个系统,在这里我记录了一些关于元素的集合信息。然后其他用户可以向这些元素添加详细信息。我不知道这些细节的名字是什么,或者会有多少。因此,我将它们存储在元素_detail表中。在某些情况下,我需要将这些行显示为列,即在导出数据时,用户可以指定他们想要作为输出一部分的详细信息。为此,我使用以下类型的查询: select ed1.item_value as 'detail_1_name',ed2.item_value as 'detail_2_name' from

先驱:也许我的db设计太差劲了

我有一个系统,在这里我记录了一些关于元素的集合信息。然后其他用户可以向这些元素添加详细信息。我不知道这些细节的名字是什么,或者会有多少。因此,我将它们存储在
元素_detail
表中。在某些情况下,我需要将这些行显示为列,即在导出数据时,用户可以指定他们想要作为输出一部分的详细信息。为此,我使用以下类型的查询:

select ed1.item_value as 'detail_1_name',ed2.item_value as 'detail_2_name' from element e 
left join element_detail ed1 on ed1.element_id=e.element_id and ed1.item_key='detail_1_name'
left join element_detail ed2 on ed2.element_id=e.element_id and ed2.item_key='detail_2_name' 
在我开始在单个数据集中查看61+个详细信息之前,这种方法一直很有效。这时我得到:
CDbCommand无法执行SQL语句:SQLSTATE[HY000]:一般错误:1116太多表;MySQL在一个联接中只能使用61个表


我如何才能改变我的设计,使我不会得到这个,最好不用做61个单独的查询和建立自己的数据集。我使用PHP/Yii作为开发环境。

在61个表中达到了限制,参考

您可以创建一个大(临时)表,并通过多个查询来更新它。最后你可以从中读到。确保列名不要太长,因为还有一个限制