我的查询包含4个表Table1
,Table2
,Table3
和Table4
。
Table1
是具有ID的主表
Table2
是与Table1
有FK关系的子表,并且有一列名为Tag
。
Table3
是与Table1
有FK关系的子表,并且有一个名为Code
的列
Table4
是与Table1
有FK关系的子表,其列为Code2
现在我想要一个查询来表示跟随逻辑
Select Table1.ID
From Table1 ...
WHERE Table2.Tag IN( 1,2,3,4)
AND ( Table3.Code In (456,789) OR Table4.CODE2 in (123,897) )
我知道我可以加入Table1
和Table2
之间的联接,获取Tag
值(1,2,3,4)
中的ID。但我不确定如何加入Table3
和Table4
来达到要求。
答案 0 :(得分:0)
您只是根据每个子表中的外键列等于Table1的键的条件继续向子表添加连接
你的查询应该是这样的
Select Table1.ID
From Table1
JOIN Table2 ON Table2.FK_ID = Table1.ID
JOIN Table3 ON Table3.FK_ID = Table1.ID
JOIN Table4 ON Table4.FK_ID = Table1.ID
WHERE Table2.Tag IN( 1,2,3,4)
AND ( Table3.Code In (456,789) OR Table4.CODE2 in (123,897) )
但是用适当的外键字段替换了FK_ID