1. 程式人生 > >Mysql命令使用大全(簡單、易用、好上手) -----多表連線查詢

Mysql命令使用大全(簡單、易用、好上手) -----多表連線查詢

(1)、UNION
將多個select查詢的結果組合成一個結果集合。
select ... UNION[ALL|DISTINCT] select ...
預設為DISTINCT方式,即將所有返回的行都是唯一的。建議對每個select查詢加上小括號。需要各select查詢的欄位數量一樣,
即每個select查詢的欄位列表(數量、型別)應一致,因為結果中的欄位名以第一條select語句為準。

(2)、子查詢
子查詢用括號括起來。
1)from型
from 後要求是一個表,必須給子查詢結果取個別名,以簡化每個查詢內的條件。
例:select * from (select * from tb where id>0) as subfrom where id>1;
2)where型
子查詢返回一個值,不需要給子查詢取別名
例:select * from tb where money = (select max(money) from tb);
3)列子查詢
使用in或not in 子查詢,查詢結果返回單列。
使用exists和not exists 條件,返回1或0,常用於判斷條件。
例:select column1 from t1 where exists(select * from t2);

(3)、join連線查詢
將多個表的欄位進行連線,可以指定連線條件。
1)內連線(inner join)
預設就是內連線,可省略inner,只有資料存在時才能傳送連線請求,即連線結果不能出現空行,on表示連線條件,其條件表示式與where類似
2)交叉連線(cross join)
例:select * from tb1 cross tb2;
3)外連線(outer join)
如果資料不存在,也會出現在連線結果中。包括:
左外連線(left outer join),即如果資料不存在,左記錄會出現,而右表以null填充。
右外連線(right outer join),如果資料不存在,右表記錄會出現,而左表以null填充。