我在一個多執行查詢JOIN表:MySQL的 - 在查詢後刪除冗餘字段
SELECT TableA.*,
TableB.Data as Data_B,
TableC.Data as Data_C,
TableD.Data as Data_D,
TableE.*
FROM TableA JOIN TableB ON TableB.ID = TableA.ID
JOIN TableC ON TableC.ID = TableB.ID
JOIN TableD ON TableD.ID = TableC.ID
JOIN TableE ON TableE.ID = TableA.ID
WHERE DataToFind = '$SubmittedData'
它的工作好,但由於表A是主表和TableE是關聯到多個子表TableA通過鍵ID,當我在TableA字段上執行搜索時,我得到與TableE記錄一樣多的TableA的重複行。
因爲我想只有DISTINCT後,我已經完成我的搜索,我的理想的查詢應該是:
SELECT DISTINCT ID FROM
(
SELECT TableA.*,
TableB.Data as Data_B,
TableC.Data as Data_C,
TableD.Data as Data_D,
TableE.*
FROM TableA JOIN TableB ON TableB.ID = TableA.ID
JOIN TableC ON TableC.ID = TableB.ID
JOIN TableD ON TableD.ID = TableC.ID
JOIN TableE ON TableE.ID = TableA.ID
WHERE DataToFind = '$SubmittedData'
)
WHERE ID IS NOT NULL
但它不工作,因爲我得到「意外的標記」等語法錯誤。
你能幫我找到它應該如何正確格式化?
p.s.我不在乎我是否會丟失一些TableE記錄,因爲我可以在需要時使用找到的ID來恢復它們。
與php的關係是什麼?這裏只有mysql和一個變量,我們不知道它是如何分配的。 –
這個問題與PHP沒有關聯,它只是一個隨機變量作爲例子。重點應該只在MySQL上。 – Singee
請不要mistag;我在編輯中刪除了它。 –