假设A表和B表的结构如下:

A表: | id | name | |----|------| | 1 | John | | 2 | Mary | | 3 | Emma |

B表: | id | name | |----|-------| | 1 | John | | 2 | Mary | | 3 | Emma | | 4 | Alice | | 5 | Bob |

第一种情况: 假设我们想筛选出B表中name不在A表中出现的数据,可以使用左连接和WHERE条件进行筛选,示例代码如下:

SELECT B.*
FROM B
LEFT JOIN A ON B.name = A.name
WHERE A.name IS NULL;

执行上述代码后,将会返回B表中name不在A表中出现的数据:

| id | name | |----|-------| | 4 | Alice | | 5 | Bob |

第二种情况: 假设我们希望根据多个条件筛选出B表中符合条件且不在A表中出现的数据,可以在LEFT JOIN的ON条件中添加多个条件,并在WHERE条件中使用AND连接。示例代码如下:

SELECT B.*
FROM B
LEFT JOIN A ON B.name = A.name AND B.id = A.id
WHERE A.name IS NULL AND A.id IS NULL;

执行上述代码后,将会返回B表中name和id都不在A表中出现的数据:

| id | name | |----|-------| | 4 | Alice | | 5 | Bob

Oracle有A和B两张表两表有一些字段相同按条件筛选出一些B表的数据去掉A表里筛选出的B表数据使用左连接请提供示例改进上面的示例where条件有多个的情况

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

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