萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> sql的left join 實例與語法用法

sql的left join 實例與語法用法

sql的left join 實例與語法用法

左聯接和類似的權利JOIN操作可以在任何的FROM子句用於組合兩個表中的記錄。左JOIN操作用於創建一個左外連接,包括從兩個表中第一個(左)的所有記錄,即使沒有匹配在第二記錄值。右JOIN操作用於創建一個右外連接,包括從第二(右的所有記錄兩個表),即使沒有匹配的第一條記錄的值。
 
雖然LEFT JOIN或RIGHT JOIN操作可以內部的內蒙古嵌套加入,反之則不然。內部聯接操作無法在一個左嵌套JOIN或RIGHT JOIN。
 
使用表'員工'和'工程',左JOIN操作將返回所有雇員,不論是否他們目前從事的任何項目,但項目名稱如適用的名字:


SELECT Employee.username, Project.ProjectName
FROM Employee LEFT JOIN Project
ON Employee.EmployeeID = Project.EmployeeID;
 

使用相同的表,正確的JOIN操作將返回所有項目的名稱,是否不屬於任何雇員對他們目前的工作,但在適用情況下與員工的名字

SELECT Employee.username, Project.ProjectName
FROM Employee RIGHT JOIN Project
ON Employee.EmployeeID = Project.EmployeeID;
 


例表a
aid adate
1 a1
2 a2
3 a3
表b
bid bdate
1 b1
2 b2
4 b4
兩個表a,b相連接,要取出id相同的字段
select * from a inner join b on a.aid = b.bid這是僅取出匹配的數據.
此時的取出的是:
1 a1 b1
2 a2 b2
那麼left join 指:
select * from a left join b on a.aid = b.bid
首先取出a表中所有數據,然後再加上與a,b匹配的的數據
此時的取出的是:
1 a1 b1


SQL LEFT JOIN 關鍵字
LEFT JOIN 關鍵字會從左表 (table_name1) 那裡返回所有的行,即使在右表 (table_name2) 中沒有匹配的行。
LEFT JOIN 關鍵字語法
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。
 

 

原始的表 (用在例子中的):
"Persons" 表: Id_P LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
"Orders" 表: Id_O OrderNo Id_P
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 65

左連接(LEFT JOIN)實例
現在,我們希望列出所有的人,以及他們的定購 - 如果有的話。 您可以使用下面的 SELECT 語句: 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
Adams John 24562
Carter Thomas 77895
Carter Thomas 44678
Bush George  
LEFT JOIN 關鍵字會從左表 (Persons) 那裡返回所有的行,即使在右表 (Orders) 中沒有匹配的行。
2 a2 b2
3 a3 空字符
同樣的也有right join
指的是首先取出b表中所有數據,然後再加上與a,b匹配的的數據
此時的取出的是:
1 a1 b1
2 a2 b2
4 空字符 b4

copyright © 萬盛學電腦網 all rights reserved