Oracle 左连接筛选数据示例:如何从 A 表中筛选数据并从 B 表中去除匹配项

假设 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 |

目标:

筛选出 A 表 age 字段大于 25 的记录,并从 B 表中去除筛选出的记录中相同 idname 的记录。

使用左连接 + 符号的 Oracle 示例查询语句如下:

SELECT B.id, B.name, B.age
FROM B
LEFT JOIN A ON B.id = A.id AND B.name = A.name
WHERE A.age > 25 OR A.age IS NULL;

解释:

  1. 左连接: 使用 LEFT JOIN 将 B 表与 A 表进行关联。
  2. 关联条件: 使用 ON 子句指定关联条件,即 B.id = A.idB.name = A.name
  3. 筛选条件: 使用 WHERE 子句筛选出 A 表中 age 字段大于 25 的记录,或者 A 表中不存在的记录(即 A.age IS NULL)。
  4. 结果: 最后返回 B 表中符合条件的记录的 idnameage 字段。

总结:

该查询语句通过左连接将 B 表与 A 表进行关联,并在 WHERE 子句中使用条件筛选出 A 表中符合条件的记录,并利用 LEFT JOIN 的特性,从 B 表中返回与 A 表匹配的记录。

Oracle 左连接筛选数据示例:如何从 A 表中筛选数据并从 B 表中去除匹配项

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

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