从table1中选择table2中没有行的行

时间:2012-06-06 12:09:37

标签: sql-server select sql-delete

我有两张桌子,OrderTable& OrderDetailTable。

我试图从OrderTable中选择OrderDetailTable中没有任何行的行,这样我们就可以删除它们。

3 个答案:

答案 0 :(得分:2)

我假设你在两个表之间有一个id关系:

select * from OrderTable  
where orderdetails_id not in (select id from OrderDetailTable)

并删除它们

delete from OrderTable  
where orderdetails_id not in (select id from OrderDetailTable)

答案 1 :(得分:0)

SELECT o.*
FROM OrderTable o
LEFT JOIN OrderDetailTable od ON od.idOrderTable = o.id
WHERE od.id IS NULL;

od.id可以是OrderDetailTable中不能为空的任何字段。

答案 2 :(得分:0)

假设OrderTable有一个列id,而OrderDetailTable有一个列orderTable_id

select * from OrderTable
WHERE id not in (
 select ot.id from OrderTable ot inner join OrderDetailTable odt on odt.orderTable_id = ot.id
)