为什么特定表后巨大加入失败?

时间:2017-08-25 00:22:13

标签: php mysql

我有一个巨大的选择查询,我必须加入超过85个表。我在运行查询时遇到错误,如果我在收缩整个语句时重新运行查询它运行正常。

查看下面连接的一部分,它一直到表85:

select $imploded_tables from $apps a 
left join $mobile_c0 $m_c0 on $apps.id = $m_c0.id
left join $mobile_c1 $m_c1 on $m_c0.id = $m_c1.id
left join $mobile_c2 $m_c2 on $m_c1.id = $m_c2.id
left join $mobile_c3 $m_c3 on $m_c2.id = $m_c3.id
left join $mobile_c4 $m_c4 on $m_c3.id = $m_c4.id
left join $mobile_c5 $m_c5 on $m_c4.id = $m_c5.id
left join $mobile_c6 $m_c6 on $m_c5.id = $m_c6.id
left join $mobile_c7 $m_c7 on $m_c6.id = $m_c7.id
left join $mobile_c8 $m_c8 on $m_c7.id = $m_c8.id
left join $mobile_c9 $m_c9 on $m_c8.id = $m_c9.id
left join $mobile_c10 $m_c10 on $m_c9.id = $m_c10.id
... 
...

2 个答案:

答案 0 :(得分:3)

Mysql Documentation

  

单个连接中可引用的最大表数为61。

答案 1 :(得分:0)

根据@sf_admin回答,最大连接数为61,所以你可以做类似下面的事情

select imploded_tables from apps a 
JOIN
(
SELECT * from mobile_c0 
UNION
SELECT * from mobile_c1 
....
)tmp
where(tmp.id=a.id)

可能没有100%回答你的问题,但这是我做过的一些工作