查找另一个 table 中不存在的 ID

Find ID which doesn't exist from another table

正在研究SQL,不知道过滤数据的方法是什么

例如,我有两个 tables:

Reference_OrderTable:

OrderTable:

我正在寻找 OrderTable 中丢失的 orderID

例如:

Reference_Ordertable:

订单编号:1、2、3、4、5、6、7、8

订单表:

订单编号:1、3、4、5、7

我想找到缺少的部分,例如 OrderID: 2, 6, 8 因为如果我们与 Reference_Ordertable 比较,OrderTable 缺少 2,6,8。

我正在考虑使用 Right Join 方法。但是,Right Join 包含公共数据,并且不搜索缺失部分。我们如何从另一个 table?

中过滤缺失的数据

谢谢!

您可以在下面尝试。

使用 EXCEPT

select OrderID from reference_OrderTable
EXCEPT
select OrderID from OrderTable

使用加入

select r.OrderID from reference_OrderTable r 
LEFT JOIN OrderTable o ON o.OrderID = r.OrderID
WHERE o.OrderID IS NULL

使用子查询

select OrderID from reference_OrderTable
where OrderID NOT IN (select OrderID from OrderTable)