一、分類
內連接(INNER JOIN) 左外連接(LEFT OUTER JOIN) 右外連接(RIGHT OUTER JOIN) 全連接(FULL OUTER JOIN) 跨連接(CROSS JOIN)
外連接是內聯的延伸,外連接有三種類型。 --- 右外連接、左外連接 、全連接
二、詳細介紹各種連接
1、內連接(INNER JOIN)
內連接,又稱簡單連接,最常見的連接類型。這個連接返回滿足條件的多個表中的所有行。
語法 :
SELECT table1.columns, table2.columns FROM table1 INNER JOIN table2 ON table1.common_filed = table2.common_field;
新建一張表 :
查詢內連接的兩個表
2、左外連接(LEFT OUTER JOIN)
左外連接返回從“ON
”條件中指定的左側表中的所有行,只返回滿足條件的另一個表中的行。
語法 :
SELECT table1.columns, table2.columns FROM table1 LEFT OUTER JOIN table2 ON table1.common_filed = table2.common_field;
3、右外連接(RIGHT OUTER JOIN)
右外連接返回從“ON
”條件中指定的右側表中的所有行,只返回滿足條件的另一個表中的行。
語法 :
SELECT table1.columns, table2.columns FROM table1 RIGHT OUTER JOIN table2 ON table1.common_filed = table2.common_field;
注意 : department 只有三條數據,而employees有多條數據,所以都能滿足department的要求!!
4、全連接(FULL OUTER JOIN)
FULL外連接從LEFT手表和RIGHT表中返回所有行。 它將NULL
置於不滿足連接條件的位置。
語法 :
SELECT table1.columns, table2.columns FROM table1 FULL OUTER JOIN table2 ON table1.common_filed = table2.common_field;
注意 : 沒有配置值的全部為空
5、跨連接(CROSS JOIN)
PostgreSQL跨連接(CROSS JOIN
)將第一個表的每一行與第二個表的每一行相匹配。 它也被稱為笛卡兒積分。 如果table1
具有“x
”列,而table2
具有“y
”列,則所得到的表將具有(x + y
)列。
語法 :
SELECT coloums FROM table1 CROSS JOIN table2