2017-08-25 54 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%%的回答你的問題,但是這是一些工作圍繞我做