左加入;仅当至少有一个匹配记录时

时间:2016-01-25 19:33:33

标签: sql sql-server

我需要加入两对表。如果表1中的ID也可以在表3中找到,我需要加入表。如果表3中的Table1没有匹配的ID,我不需要加入表。

实施例

如果表3中的表1中至少有一个id;做一些有效的事情:


    SELECT *
    FROM Table1 AS t1
    INNER JOIN Table2 AS t2 ON t1.ID = t2.ID
    LEFT JOIN Table3 AS t3 ON t1.ID = t3.ID
    LEFT JOIN Table4 AS t4 ON t3.ID = t4.ID

如果Table1和Table3之间没有匹配的ID;做一些有效的事情:


    SELECT *
    FROM Table1 AS t1
    INNER JOIN Table2 AS t2 ON t1.ID = t2.ID

1 个答案:

答案 0 :(得分:3)

只需将您的问题翻译成SQL,即可:

IF EXISTS(SELECT * FROM Table1 T1 INNER JOIN Table3 T3 ON T1.ID=T3.ID)
    SELECT *
    FROM Table1 AS t1
    INNER JOIN Table2 AS t2 ON t1.ID = t2.ID
    LEFT JOIN Table3 AS t3 ON t1.ID = t3.ID
    LEFT JOIN Table4 AS t4 ON t3.ID = t4.ID
ELSE  
    SELECT *
    FROM Table1 AS t1
    INNER JOIN Table2 AS t2 ON t1.ID = t2.ID