首頁 > 資料庫 > mysql教程 > 當按 ID 連接四個表時,為什麼我的 SQL 查詢返回「TableD 未知」?

當按 ID 連接四個表時,為什麼我的 SQL 查詢返回「TableD 未知」?

Patricia Arquette
發布: 2025-01-14 06:05:42
原創
709 人瀏覽過

Why is my SQL query returning

透過 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 存在於 TableATableD 中)。 WHERE 子句篩選結果,僅包含 TableC.date 與目前日期相符的條目。 請注意 CURDATE() 的使用,出於清晰度和資料庫相容性的考慮,它通常優於 date(now())

重要注意事項:

  • 清晰度:避免不必要的括號以獲得更好的可讀性。
  • 邏輯結構:確保您的連接具有邏輯結構並正確連結。 仔細檢查用於連接的 ID 是否確實存在並且在每個表中正確命名。
  • 資料庫特定函數: 雖然 date(now()) 在某些資料庫中工作,但 CURDATE() 更標準和可移植。

透過執行這些步驟並驗證 ID 列的存在和命名,您應該成功連接所有四個表。

以上是當按 ID 連接四個表時,為什麼我的 SQL 查詢返回「TableD 未知」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板