在 sql 中,(+) 運算符用于合并查詢結果集,在不匹配的行中填充 null 值。它允許執行外連接,避免笛卡爾積,并有兩種類型:左外連接和右外連接。左右外連接將從左表或右表返回所有行,為不匹配的行填充 null 值。
SQL 中 (+) 的用法
在 SQL 查詢中,(+) 運算符用于將兩個查詢結果集進行合并,并以帶有 NULL 值的方式填充缺失的行。
語法:
<code>SELECT column_list FROM table1 LEFT|RIGHT (+) JOIN table2 ON join_condition;</code>
登錄后復制
作用:
外連接:(+) 運算符允許執行外連接,即返回一個包含來自兩個表的匹配行以及來自一個或兩個表中的所有行的結果集。
填充缺失行:對于不匹配的行,(+) 運算符會在缺失的表中插入 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 將這兩個表連接起來,并填充缺失行:
<code>SELECT * FROM students LEFT (+) JOIN courses ON students.id = courses.id;</code>
登錄后復制
結果:
id | name | course_name |
---|---|---|
1 | John | Math |
2 | Mary | Science |
NULL | NULL | History |