开发者社区> 问答> 正文

如何使用ID联接多个SQL表?

我有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()))

展开
收起
保持可爱mmm 2020-05-11 10:31:56 385 0
1 条回答
写回答
取消 提交回答
  • 您想要更多类似这样的东西:

    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。您要做的就是像以前一样执行另一个联接。

    注意:您会注意到我删除了许多括号,因为在大多数情况下,它们实际上并不是必需的,并且只会在尝试阅读代码时增加混乱。正确的嵌套是使代码易于阅读和分离的最佳方法。来源:stack overflow

    2020-05-11 10:32:09
    赞同 展开评论 打赏
问答分类:
SQL
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载