2017-08-25 52 views
-2

我有一个巨大的选择查询,我必须加入超过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 
... 
... 
+1

*“我一直运行查询时,得到一个错误” * < - 只要有某种**消息**与该错误一起出现 – Phil

+0

什么是错误? – Ray

+1

首先看起来像一个可怕的结构 – rtfm

回答

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%%的回答你的问题,但是这是一些工作围绕我做