【SQL】多表查詢中的 外連接 ,on,where


先簡單粗暴給個結論,多表連結查詢中,on比where更早起作用,系統首先根據各個表之間的聯接條件,把多個表合成一個臨時表后,再由where進行匹配過濾,where后語句為真,則能查詢出來,而通過外連接,例如左連接on,則無論是否為真,都會把左邊表的內容都查詢出來。

多表查詢基本語法

select*from table_1,table_2 where table_1.no=table_2.no

實例:

select*from stu,sc where stu.sno=sc.sno

 

 

 查出了stu表中與sc表中sno相等的記錄

(左)外連接:表的記錄將會全部表示出來,而只會顯示符合搜索條件的記錄,同時右表中沒有記錄的地方均用NULL替代

select*from table_1 left outer join table_2 on table_1.no=table_2.no

注:outer可省略,右連接和全外連接只需要把left修改成right或full,語法基本一致

實例:

select*from stu left outer join sc on stu.sno=sc.sno

 

對比where,查出20條記錄,多查出了11條記錄,因為無論sno是否匹配,及后面語句是否為真,優先顯示左表的所有記錄,並把不匹配項的右表都設為NULL

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM