一文掌握SQL的 joins 語法
SQL 中的不同 JOIN 類型:
1. (INNER)JOIN(內(nèi)連接):返回兩個(gè)表中具有匹配值的記錄。
2. LEFT(OUTER)JOIN(左外連接):返回左表中的所有記錄,以及右表中與之匹配的記錄。
3. RIGHT(OUTER)JOIN(右外連接):返回右表中的所有記錄,以及左表中與之匹配的記錄。
4. FULL(OUTER)JOIN(全外連接):返回在左表或右表中有匹配的所有記錄。

現(xiàn)在詳細(xì)舉例說明:
假設(shè)我們有兩個(gè)表 employees 和 departments:
| employee_id | name | department_id |
|---|---|---|
| 1 | Alice | 1 |
| 2 | Bob | 2 |
| 3 | David | NULL |
employees表
| department_id | department_name |
| 1 | HR |
| 2 | Engineering |
| 3 | Sales |
departments表
INNER JOIN
SELECT employees.name, departments.department_name //要查的字段 FROM employees //表1 INNER JOIN departments ON employees.department_id = departments.department_id; //表2,連接條件
結(jié)果是
| name | department_name |
| Alice | HR |
| Bob | Engineering |
LEFT (OUTER) JOIN
LEFT JOIN 返回左表中的所有記錄,以及右表中匹配的記錄。如果右表中沒有匹配的記錄,則結(jié)果中包含 NULL。
SELECT employees.name, departments.department_name FROM employees LEFT JOIN departments ON employees.department_id = departments.department_id;
結(jié)果是
| name | department_name |
| Alice | HR |
| Bob | Engineering |
| David | NULL |
RIGHT (OUTER) JOIN
RIGHT JOIN 返回右表中的所有記錄,以及左表中匹配的記錄。如果左表中沒有匹配的記錄,則結(jié)果中包含 NULL。
SELECT employees.name, departments.department_name FROM employees RIGHT JOIN departments ON employees.department_id = departments.department_id;
結(jié)果是
| name | department_name |
| Alice | HR |
| Bob | Engineering |
| NULL | Sales |
FULL (OUTER) JOIN
FULL JOIN 返回兩個(gè)表中的所有記錄,當(dāng)左表或右表中有匹配時(shí)返回匹配的記錄。如果沒有匹配,則結(jié)果中包含 NULL。
SELECT employees.name, departments.department_name FROM employees FULL JOIN departments ON employees.department_id = departments.department_id;
| name | department_name |
| Alice | HR |
| Bob | Engineering |
| David | NULL |
| NULL | Sales |
總結(jié)
- INNER JOIN:只返回兩個(gè)表中匹配的記錄。
- LEFT JOIN:返回左表中的所有記錄,以及右表中匹配的記錄。
- RIGHT JOIN:返回右表中的所有記錄,以及左表中匹配的記錄。
- FULL JOIN:返回兩個(gè)表中的所有記錄,當(dāng)左表或右表中有匹配時(shí)返回匹配的記錄。
希望這些示例能幫助你更好地理解 SQL 中的不同 JOIN 類型。
到此這篇關(guān)于SQL的 joins 語法的文章就介紹到這了,更多相關(guān)SQL joins 語法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MS-SQL Server 2005 其中三個(gè)版本的比較
MS-SQL Server 2005 其中三個(gè)版本的比較...2006-12-12
在SQL觸發(fā)器或存儲(chǔ)過程中獲取在程序登錄的用戶
每個(gè)用戶可以登錄系統(tǒng),在程序中操作數(shù)據(jù)(添加,更新和刪除)需要實(shí)現(xiàn)記錄操作跟蹤。是誰添加,更新和刪除的,這些信息將會(huì)插入至AuditLog表中2012-01-01
SQL?Server數(shù)據(jù)庫的備份和還原保姆級教程
SQL Server備份和還原數(shù)據(jù)庫是非常重要的操作,下面這篇文章主要給大家介紹了關(guān)于SQL?Server數(shù)據(jù)庫的備份和還原的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08
Sql Server Management Studio連接Mysql的實(shí)現(xiàn)步驟
本文主要介紹了Sql Server Management Studio連接Mysql的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
教你幾種在SQLServer中刪除重復(fù)數(shù)據(jù)方法
數(shù)據(jù)庫的使用過程中由于程序方面的問題有時(shí)候會(huì)碰到重復(fù)數(shù)據(jù),重復(fù)數(shù)據(jù)導(dǎo)致了數(shù)據(jù)庫部分設(shè)置不能正確設(shè)置……2010-04-04

