mysql左连接_MySQL left join 左连接的通俗理解
LEFT JOIN 關(guān)鍵字會從左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中沒有匹配的行。下面給個通俗的解釋吧。
表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
這是僅取出匹配的數(shù)據(jù)。
此時的取出的是:
1 a1 b1
2 a2 b2
那么left join 指:
select * from a left join b on a.aid = b.bid
首先取出a表中所有數(shù)據(jù),然后再加上與a、b匹配的的數(shù)據(jù)。
此時的取出的是:
1 a1 b1
2 a2 b2
3 a3 空字符
同樣的也有right join
指的是首先取出b表中所有數(shù)據(jù),然后再加上與a、b匹配的的數(shù)據(jù)。
此時的取出的是:
1 a1 b1
2 a2 b2
4 空字符 b4
LEFT JOIN 或 LEFT OUTER JOIN。
左向外聯(lián)接的結(jié)果集包括 LEFT OUTER 子句中指定的左表的所有行,而不僅僅是聯(lián)接列所匹配的行。如果左表的某行在右表中沒有匹配行,則在相關(guān)聯(lián)的結(jié)果集行中右表的所有選擇列表列均為空值。
實例
"Persons" 表:
Id_PLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
2BushGeorgeFifth AvenueNew York
3CarterThomasChangan StreetBeijing
"Orders" 表:
Id_OOrderNoId_P
1778953
2446783
3224561
4245621
53476465
左連接(LEFT JOIN)實例
現(xiàn)在,我們希望列出所有的人,以及他們的定購 - 如果有的話。
您可以使用下面的 SELECT 語句:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
結(jié)果集:
LastNameFirstNameOrderNo
AdamsJohn22456
AdamsJohn24562
CarterThomas77895
CarterThomas44678
BushGeorge
LEFT JOIN 關(guān)鍵字會從左表 (Persons) 那里返回所有的行,即使在右表 (Orders) 中沒有匹配的行。
總結(jié)
以上是生活随笔為你收集整理的mysql左连接_MySQL left join 左连接的通俗理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++实现ftp服务器_第三步,尝试用树
- 下一篇: mysql time_limit_mys