假设A表包含字段a1、a2、a3,B表包含字段b1、b2、b3。

示例1: A表数据:

a1 | a2 | a3
---|----|----
1  | 2  | 3
4  | 5  | 6
7  | 8  | 9

B表数据:

b1 | b2 | b3
---|----|----
1  | 2  | 3

查询语句:

SELECT a1, a2, a3 
FROM A
LEFT JOIN B ON A.a1 = B.b1 AND A.a2 = B.b2 AND A.a3 = B.b3
WHERE B.b1 IS NULL;

查询结果:

a1 | a2 | a3
---|----|----
4  | 5  | 6
7  | 8  | 9

示例2: A表数据:

a1 | a2 | a3
---|----|----
1  | 2  | 3
4  | 5  | 6
7  | 8  | 9

B表数据:

b1 | b2 | b3
---|----|----
4  | 5  | 6

查询语句:

SELECT a1, a2, a3 
FROM A
LEFT JOIN B ON A.a1 = B.b1 AND A.a2 = B.b2 AND A.a3 = B.b3
WHERE B.b1 IS NULL OR (B.b1 IS NOT NULL AND A.a1 = B.b1 AND A.a2 = B.b2 AND A.a3 = B.b3);

查询结果:

a1 | a2 | a3
---|----|----
1  | 2  | 3
7  | 8  | 9

在示例2中,由于B表中存在与A表中一致的数据,所以只有符合B表条件的数据才会显示出来

Oracle有A和B两张表B是A的子集不在B表的数据都显示B表里有数据时符合B表的一些条件才显示否则不显示。请提供示例改进上面的示例要求例子通用A和B表都有多个字段

原文地址: https://www.cveoy.top/t/topic/ixSV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录