gpt4 book ai didi

mysql - 如何使用 ID 连接多个 SQL 表?

转载 作者:IT老高 更新时间:2023-10-28 12:49:46 26 4
gpt4 key购买 nike

我有 4 个不同的表要加入。这些表的结构如下:

TableA - aID | nameA | dID

TableB - bID | nameB | cID | aID

TableC - cID | nameC | date

TableD - dID | nameD

从表 A 开始,我了解如何使用 b 连接表 a 和 c,因为 b 具有这些表的主键。我也希望能够在 TableA 上加入表 TableD。下面是我的 SQL 语句,它首先连接表 A 和 B,然后将其连接到 C:

SELECT TableA.*, TableB.*, TableC.* FROM (TableB INNER JOIN TableA
ON TableB.aID= TableA.aID)
INNER JOIN TableC ON(TableB.cID= Tablec.cID)
WHERE (DATE(TableC.date)=date(now()))

当我尝试添加另一个联接以包含 D 时,我收到一个错误,即“TableD”未知:

 SELECT TableA.*, TableB.*, TableC.*, TableD.* FROM (TableB INNER JOIN TableA
ON TableB.aID= TableA.aID)
INNER JOIN TableC ON(TableB.cID= Tablec.cID)
INNER JOIN TableA ta ON(ta.dID= TableD.dID)
WHERE (DATE(TableC.date)=date(now()))

最佳答案

你想要更像这样的东西:

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)=date(now())

在您的示例中,您实际上并未包含 TableD。您所要做的就是像以前一样执行另一个连接。

注意:您会注意到我删除了您的许多括号,因为在您拥有它们的大多数情况下,它们确实不是必需的,并且只会在尝试阅读代码时增加困惑。正确的嵌套是使代码可读和分离的最佳方式。

关于mysql - 如何使用 ID 连接多个 SQL 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9853586/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com