表A中没有表B中的SQL查找记录

问题描述

我有Tbl1

enter image description here

和Tbl2

enter image description here

我想返回A中的记录,但不返回B中的记录,在这种情况下,我想返回最后2条记录。

我尝试了以下操作,但这会产生0条记录。我想念什么?

SELECT tbl2.field1,tbl2.field2,tbl2.field3
FROM tbl2
RIGHT JOIN tbl1
ON tbl2.field1 = tbl1.field1
WHERE tbl1.field1 IS NULL

编辑:

我尝试了LEFT加入,还尝试了以下方法

SELECT * 
FROM tbl2
LEFT JOIN tbl1 ON tbl1.field1 = tbl2.field1
WHERE tbl1.field1 IS NULL

给出以下结果:

enter image description here

解决方法

已编辑 解决方案:您可以使用不存在方法检查第二张表。

SELECT *
FROM tbl2
WHERE NOT EXISTS (SELECT *
              FROM tbl1
              WHERE tbl1.field1 = tbl2.field1
              AND tbl1.field2 = tbl2.field2
              AND tbl1.field3 = tbl2.field3);

两个表都具有相同的字段,因此,我们必须检查所有字段(如@Andre所定义)。

,

在JOIN条件下,您需要所有列。

SELECT * 
FROM tbl2
LEFT JOIN tbl1 
  ON (tbl1.field1 = tbl2.field1) AND (tbl1.field2 = tbl2.field2) AND (tbl1.field3 = tbl2.field3) 
WHERE tbl1.field1 IS NULL