透過 ID 連接多個 SQL 表:排除「未知表」錯誤
本指南解決了使用 ID 連線多個 SQL 表時的常見問題。 您已成功加入表 A、B 和 C,但新增表 D 會導致「表 D 未知」錯誤。此錯誤表示 SQL 查詢中的表 D 引用不正確。 要解決此問題,您必須將表 D 正確連結到現有的聯接表。
解
包含表格 D 的更正 SQL 語句是:
<code class="language-sql">SELECT TableA.*, TableB.*, TableC.*, TableD.* FROM TableA JOIN TableB ON TableB.aID = TableA.aID JOIN TableC ON TableC.cID = TableB.cID JOIN TableD ON TableD.dID = TableA.dID WHERE DATE(TableC.date) = CURDATE();</code>
此改進的查詢使用 TableA
作為錨點。 它使用 TableB
連接 aID
,使用 TableC
連接 cID
,最後使用 TableD
連接 dID
(假設 dID
存在於 TableA
和 TableD
中)。 WHERE
子句篩選結果,僅包含 TableC.date
與目前日期相符的條目。 請注意 CURDATE()
的使用,出於清晰度和資料庫相容性的考慮,它通常優於 date(now())
。
重要注意事項:
date(now())
在某些資料庫中工作,但 CURDATE()
更標準和可移植。 透過執行這些步驟並驗證 ID 列的存在和命名,您應該成功連接所有四個表。
以上是當按 ID 連接四個表時,為什麼我的 SQL 查詢返回「TableD 未知」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!