我有两个表。
一个是具有所有有效组合的Admin表,另一个是包含事务的Transaction表。
我正在尝试编写一个查询,该查询将给出事务表中无效组合的结果。
查询应返回无效的事务。
正如您在下面的示例中看到的,ABCD-TUV和IJKL-EFG不是有效的组合。
管理员表
Column A Column B
ABCD XYZ
ABCD EFG
EFGH XYZ
IJKL TUV
IJKL XYZ
或者,您可以使用NOT EXISTS,例如
SELECT * FROM TRANSACTIONS T WHERE NOT EXISTS (SELECT 1
FROM ADMIN
WHERE COMBINATION = T.COMBINATION)
使用EXISTS还是NOT IN在很大程度上取决于您查询的数据。你可以在这里找到更多关于这个主题的信息https://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:953229842074
您的问题中没有示例,但您应该使用NOT IN
。
例如:
SELECT * FROM TRANSACTIONS WHERE combination NOT IN (SELECT combination FROM ADMIN)