sql - NOT IN 子句中的复合键
问题描述
我有一个表,其中两列(Invoice_Id 和 Invoice_line)作为主键(复合键)。还有另一个具有类似结构的表。我想从表 1 中过滤掉不在表 2 中的数据。
类似于以下查询的内容
SELECT *
FROM INVOICE_LINE T1
WHERE T1.INVOICE_ID AND T1.LINE
NOT IN (SELECT T2.INVOICE_ID,T2.LINE
FROM INVOICE_LINE2
WHERE T1.INVOICE_ID = T2.INVOICE_ID
AND T1.LINE = T2.LINE
);
我已经尝试了上面的查询,但它不能正常工作。
解决方案
或者,您可以使用LEFT JOIN
SELECT *
FROM
INVOICE_LINE T1
LEFT JOIN INVOICE_LINE2 T2 ON T1.INVOICE_ID = T2.INVOICE_ID
AND T1.LINE= T2.LINE
WHERE
T2.INVOICE_ID IS NULL OR T2.Line IS NULL
推荐阅读
- flutter - Flutter http POST 产生没有异常消息的 ClientException
- python - 在具有 NaN 值的 pandas 数据帧上操作时精度损失
- apache-kafka - Debezium Kafka 连接错误 - TimeoutException:获取主题元数据时超时
- ios - 如何在 iOS 上测试 Firebase 无密码登录?
- python - 如何在 matplotlib 中使用不同的 xlimit 和轴 x 的大小制作子图?
- javascript - 无法在 python 上使用 requests-html 库运行 JavaScript
- javascript - 每次单击下一个输入时反应输入都会翻转
- javascript - 错误:这可能不是 npm 的问题。这可能是上面的附加日志输出
- c++ - sqrt 函数导致“'void*'不是指向对象类型的指针”错误
- regex - 如何查找不以指定字符结尾的子字符串的第一次出现