检索不匹配的行

时间:2014-11-30 11:32:02

标签: sql-server sql-server-2008

我有2个表Order和OrderItem。 Order表有列ID_Order,OrderItem有外键FK_Order,它是订单表ID_order的值。

现在我必须创建一个查询,显示来自表顺序的所有条目,其中orderItem中没有引用(id_order在表orderitem中不用作fk_order)。

请告诉我。我使用外连接..但它们没有显示正确的结果。

由于

1 个答案:

答案 0 :(得分:-1)

我建议使用Exist而不是IN子句。因为it will be faster

SELECT *
FROM   Order o
WHERE NOT EXIST (SELECT *
                    FROM   OrderItem oi
                    WHERE o.ID_order = oi.ID_order)

另一种方式是LEFT JOIN

SELECT DISTINCT o.*
FROM   Order o LEFT JOIN OrderItem oi 
       ON o.ID_order = oi.ID_order
WHERE oi.ID_order IS NULL