sql中(+)的用法-SQL
SQL 中 (+) 的用法
在 SQL 查询中,(+) 运算符用于将两个查询结果集进行合并,并以带有 NULL 值的方式填充缺失的行。
语法:
SELECT column_list FROM table1 LEFT|RIGHT (+) JOIN table2 ON join_condition;
登录后复制
作用:
- 外连接:(+) 运算符允许执行外连接,即返回一个包含来自两个表的匹配行以及来自一个或两个表中的所有行的结果集。
- 填充缺失行:对于不匹配的行,(+) 运算符会在缺失的表中插入 NULL 值。
- 避免笛卡尔积:在内连接中,如果没有匹配行,查询将返回空结果集。使用 (+) 运算符则可以填充缺失行,避免笛卡尔积。
类型:
- 左外连接:LEFT (+) JOIN 从左表中返回所有行,并为右表中没有匹配的左表行填充 NULL 值。
- 右外连接:RIGHT (+) JOIN 从右表中返回所有行,并为左表中没有匹配的右表行填充 NULL 值。
示例:
假设我们有以下两个表:
students | |
---|---|
id | name |
1 | John |
2 | Mary |
courses | |
---|---|
id | course_name |
1 | Math |
2 | Science |
3 | History |
以下查询使用 LEFT (+) JOIN 将这两个表连接起来,并填充缺失行:
SELECT * FROM students LEFT (+) JOIN courses ON students.id = courses.id;
登录后复制
结果:
id | name | course_name |
---|---|---|
1 | John | Math |
2 | Mary | Science |
NULL | NULL | History |