假设A表和B表的结构如下:\n\n A表:\n | id | name | age |\n |----|------|-----|\n | 1 | John | 20 |\n | 2 | Mary | 25 |\n | 3 | Alex | 30 |\n | 4 | Jane | 35 |\n\n B表:\n | id | name | age |\n |----|------|-----|\n | 1 | John | 20 |\n | 2 | Mary | 25 |\n | 3 | Alex | 30 |\n | 5 | Mark | 40 |\n\n 使用左连接获取满足条件的B表数据,并去掉A表中筛选出的B表数据的示例SQL如下:\n\n sql\n SELECT B.*\n FROM B\n LEFT JOIN A ON B.id = A.id\n WHERE A.id IS NULL\n \n\n 结果:\n | id | name | age |\n |----|------|-----|\n | 5 | Mark | 40 |\n\n 如果需要添加多个条件,可以使用+符号的书写方式,示例SQL如下:\n\n sql\n SELECT B.*\n FROM B, A\n WHERE B.id = A.id(+)\n AND A.id IS NULL\n AND B.age > 25(+)\n \n\n 结果:\n | id | name | age |\n |----|------|-----|\n | 5 | Mark | 40 |\n\n 注意,在Oracle 12c及以后的版本中,不推荐使用+符号的书写方式,建议使用标准的LEFT JOIN语法。

Oracle 左连接筛选数据:去除重复数据并添加多个条件 - 示例与优化

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

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