3

考虑图像中的表格

在此处输入图像描述

如何从 Table1 中选择行,不包括 Table2 中具有相同 ReferenceId 的项目?

结果应该是

在此处输入图像描述

4

5 回答 5

3

你可以使用类似的东西:

SELECT  Id
        ,ReferenceId
FROM    Table1
WHERE   ReferenceId NOT IN (SELECT DISTINCT ReferenceId FROM Table2);
于 2012-09-06T09:37:27.360 回答
3

您可以使用 LEFT OUTER 连接来加入 ReferenceId 上的表,并将返回值限制为 Table2 上 ReferenceId 为 NULL 的位置。

SELECT * FROM Table1 LEFT JOIN Table2 ON Table1.ReferenceId = Table2.ReferenceId
WHERE Table2.ReferenceId IS NULL
于 2012-09-06T09:38:28.950 回答
3

如何从 Table1 中选择行,不包括 Table2 中具有相同 ReferenceId 的项目?

ReferenceId然后排除t2.ReferenceId <> t1.ReferenceId

SELECT t1.id, t1.ReferenceID FROM t1 
INNER JOIN t2 ON t1.id = t2.id
WHERE t2.ReferenceID <>  t1.ReferenceID;

看到这个 SQLFiddle

于 2012-09-06T09:43:04.567 回答
1
SELECT table1.id, table1.ReferenceID from table1 
     inner join table2 on table1.id = table2.id
EXCEPT
SELECT id, ReferenceID from table2
于 2012-09-06T09:34:57.313 回答
0

有条件查询

SELECT *
FROM Table1 t1
 JOIN Table2 t2 on t1.Id = t2.Id
    AND t1.Id <> t1.ReferenceId
于 2012-09-06T09:46:57.253 回答