如何使用Group By从SqlServer查询获取单列结果

时间:2015-04-17 01:15:55

标签: sql-server

我有两张经典表格(好吧,不是我真正的问题)。订单和OrderItems。我想使用单个语句删除所有没有OrderItems的订单。我可以通过以下查询获取我要删除的订单列表:

SELECT COUNT(*),OrderId
FROM OrderItems
GROUP BY OrderId
HAVING COUNT(*) > 0

我想做的是:

DELETE FROM Orders WHERE Id NOT IN (....)

其中“....”是我上面的SELECT。选择给了我两列,我真的不想要第二列,只是第一列。

我觉得有某种自我加入,或类似我可以使用的东西,但我只是在阅读时才读到。

1 个答案:

答案 0 :(得分:1)

DELETE from Orders Where Id NOT IN (SELECT OrderId
FROM OrderItems
GROUP BY OrderId 
HAVING COUNT(*) >0);