mysql_多表查詢

多表查詢,也稱為關(guān)聯(lián)查詢,指兩個或更多個表一起完成查詢操作。?
前提條件:這些一起查詢的表之間是有關(guān)系的(一對一、一對多),它們之間一定是有關(guān)聯(lián)字段,這個 關(guān)聯(lián)字段可能建立了外鍵,也可能沒有建立外鍵。比如:員工表和部門表,這兩個表依靠“部門編號”進(jìn) 行關(guān)聯(lián)。
一、出現(xiàn)笛卡爾積的錯誤
1.1 錯誤的原因:缺少了多表的連接條件
1.2 多表查詢的正確方式:需要有連接條件
?1.3 如果查詢語句中出現(xiàn)了多個表中都存在的字段,則必須指明此字段所在的表。
1.4 可以給表起別名,在SELECT和WHERE中使用表的別名。
結(jié)論:如果有n個表實(shí)現(xiàn)多表的查詢,則需要至少n-1個連接條件

二、多表查詢的分類
角度1:等值連接? vs? 非等值連接
角度2:自連接? vs? 非自連接
角度3:內(nèi)連接? vs? 外連接
1.等值連接? vs? 非等值連接
2.自連接? vs? 非自連接
3.內(nèi)連接? vs? 外連接
4.UNION? 和 UNION ALL的使用

三、7種SQL JOINS的實(shí)現(xiàn)

1.代碼實(shí)現(xiàn)
2.語法格式小結(jié)
左中圖
右中圖
左下圖
右下圖

練習(xí)1:
練習(xí)二:
標(biāo)簽: