表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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...