先簡單粗暴給個結論,多表連結查詢中,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
