我有两个表 ECRDTL_del 和 ECRDTL_edit,我只想显示 ECRDTL_del 中不在 ECRDTL_edit 中的记录。 我试过使用 MYSQL left join,但无法得到想要的结果。这是我当前的查询字符串:
SELECT a.*
FROM ECRDTL_del AS a
LEFT JOIN ECRDTL_edit AS b ON b.Ecrno = a.Ecrno
WHERE b.Cylno <> a.Cylno
下面提到的这两个表的数据示例和预期结果:
ECRDTL_del:
Ecrno Cylno
9090 8881
9090 8882
9090 8883
9090 8884
ECRDTL_edit:
Ecrno Cylno
9090 8881
9090 8885
9090 8886
9090 8884
LEFT 连接后的预期结果:
Ecrno Cylno
9090 8882
9090 8883
最佳答案
从你的问题:
"...I want to display only records from ECRDTL_del which are not in ECRDTL_edit."
你很接近,你只需要检查 b.Ecrno IS NULL
。
SELECT a.*
FROM ECRDTL_del AS a
LEFT JOIN ECRDTL_edit AS b
ON a.Ecrno = b.Ecrno AND
a.Cylno = b.Cylno
WHERE b.Ecrno IS NULL
输出
╔═══════╦═══════╗
║ ECRNO ║ CYLNO ║
╠═══════╬═══════╣
║ 9090 ║ 8882 ║
║ 9090 ║ 8883 ║
╚═══════╩═══════╝
关于mysql - LEFT JOIN 显示不在右表中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15926348/