通过 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中文网其他相关文章!