1. 程式人生 > >sql 多表查詢

sql 多表查詢

1.不適用left join 和right join :這種情況最好是你的外來鍵不是為空,如果外來鍵為空並且使用多表查詢,那麼可能沒有資料。至於為什麼,沒有深究。舉例;

使用者表      交易表

使用者可能註冊了有資訊了,但是未必使用者就一定成交。如果這是在使用上面這種情況,必然出現沒有資料的查詢結果。

sql: select t1.* t2.* from user as t1, agreement as t2 where t1.comId = t2.comId;

2.但是你的一個表的外來鍵可能是空的時候,那麼就要考慮使用左外連線和右外連線了。

sql: select t1.*,t2.* from user as t1 left join agreement as t2 on t1.commId=t2.commId where。。。。。。;

左外連線保證的是左邊的表中資料全部查出,而不管右邊表中的資料是否存在。

n:等值連線,用來查詢多表相同欄位的記錄

Not In:非等值連線,用來查詢不存在的記錄

Inner join:內連線,主要用來查詢都符合條件的記錄

Left join:左連線,主要用來查詢左邊有,右邊沒有的用空值表達

Right join:右連線,主要用來查詢右邊有,左邊沒有的用空值表達

Order By:升序 Asc 降序 Desc

Group By:分組排序 按欄位分組(如按班級分),使用的都要有集合函式存在

Having:對分組條件進行判斷,使用都要確保每個欄位都要用集合函式