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

A表: | id | name | age | |----|------|-----| | 1 | John | 20 | | 2 | Mary | 25 | | 3 | Alex | 30 | | 4 | Jane | 35 |

B表: | id | name | age | |----|------|-----| | 1 | John | 20 | | 2 | Mary | 25 | | 3 | Alex | 30 | | 5 | Mark | 40 |

使用左连接获取满足条件的B表数据,并去掉A表中筛选出的B表数据的示例SQL如下:

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

结果: | id | name | age | |----|------|-----| | 5 | Mark | 40 |

如果需要添加多个条件,可以使用+符号的书写方式,示例SQL如下:

SELECT B.*
FROM B, A
WHERE B.id = A.id(+)
AND A.id IS NULL
AND B.age > 25(+)

结果: | id | name | age | |----|------|-----| | 5 | Mark | 40 |

注意,在Oracle 12c及以后的版本中,不推荐使用+符号的书写方式,建议使用标准的LEFT JOIN语法

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

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

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