鏈接條件可在FROM或WHERE子句中指定,建議在FROM子句中指定鏈接條件。WHERE和HAVING子句也能夠包含搜索條件,以進一步篩選鏈接條件所選的行。 web
鏈接可分爲如下幾類: 數據庫
內連接(Inner Join)spa
外鏈接(Outer Join).net
|--- 左鏈接(Left Join)
|--- 右鏈接(Right Join)
code
全鏈接(Full Join)orm
在表中存在至少一個匹配時,INNER JOIN 關鍵字返回行。
INNER JOIN 關鍵字語法 blog
?ci
1
2
3
4
|
SELECT
column_name(s)
FROM
table_name1
INNER
JOIN
table_name2
ON
table_name1.column_name=table_name2.column_name
|
註釋:INNER JOIN 與 JOIN 是相同的。 get
一句話歸納:inner join只取都不null的,至關於用from a,b where ?=?(鏈接是on ? = ?)it
示例:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
LastName |
FirstName |
OrderNo |
Adams |
John |
22456 |
Adams |
John |
24562 |
Carter |
Thomas |
44678 |
根據目的表(但願獲取其所有記錄的表)是右表仍是左表,分爲左鏈接和右鏈接。
LEFT JOIN
LEFT JOIN 關鍵字會從左表 (table_name1) 那裏返回全部的行,即便在右表 (table_name2) 中沒有匹配的行。
LEFT JOIN 關鍵字語法
1
2
3
4
|
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
|
註釋:在某些數據庫中, LEFT JOIN 稱爲 LEFT OUTER JOIN。
一句話歸納:以左表爲標準,取出左表全部的記錄,右表有對應記錄則顯示,無則顯示null。
示例:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
LastName |
FirstName |
OrderNo |
Adams |
John |
22456 |
Carter |
Thomas |
77895 |
Bush |
George |
RIGHT JOIN
RIGHT JOIN 關鍵字會右表 (table_name2) 那裏返回全部的行,即便在左表 (table_name1) 中沒有匹配的行。
RIGHT JOIN 關鍵字語法
1
2
3
4
|
SELECT
column_name(s)
FROM
table_name1
RIGHT
JOIN
table_name2
ON
table_name1.column_name=table_name2.column_name
|
註釋:在某些數據庫中, RIGHT JOIN 稱爲 RIGHT OUTER JOIN。
一句話歸納:以右表爲標準,取出右表全部的記錄,左表有對應記錄則顯示,無則顯示null。
示例:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
LastName |
FirstName |
OrderNo |
Adams |
John |
22456 |
Carter |
Thomas |
77895 |
34764 |
只要其中某個表存在匹配,FULL JOIN 關鍵字就會返回行。
FULL JOIN 關鍵字語法
1
2
3
4
|
SELECT
column_name(s)
FROM
table_name1
FULL
JOIN
table_name2
ON
table_name1.column_name=table_name2.column_name
|
註釋:在某些數據庫中, FULL JOIN 稱爲 FULL OUTER JOIN。
一句話歸納:完整外部鏈接返回左表和右表中的全部行。是左鏈接和右鏈接的合集。
示例:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
LastName |
FirstName |
OrderNo |
Adams |
John |
22456 |
Bush |
George |
|
34764 |
PS:
交叉鏈接:交叉鏈接返回左表中的全部行,左表中的每一行與右表中的全部行組合。交叉鏈接也稱做笛卡爾積。