標籤:
進階查詢:
1.串連查詢
select * from Info,Nation #這是兩個表名,中間用逗號隔開
形成笛卡爾積
select * from Info,Nation where Info.nation=Nation.code
select Info.code,Info.name,Info.sex,Nation.name as ‘民族‘,Info.birthday from Info,Nation where Info.nation=Nation.code
select * from Info join Nation on Info.nation=Nation.code
2.聯集查詢
select code,name from Info
union #這是兩個表的行聯合
select code,name from Nation
3.子查詢
子查詢查詢的結果作為父查詢的條件
(1)無關子查詢:子查詢執行的時候和父查詢沒有關係
查民族為‘漢族‘的所有學生資訊
select * from Info where nation=(select code from nation where name=‘漢族‘)
查詢生產廠商為‘一汽福士‘的所有汽車資訊
select * from car where brand=()
select brand_code from brand where prod_code=()
select prod_code from productor where prod_name=‘一汽福士‘
select * from car where brand in(select brand_code from brand where prod_code in(select prod_code from productor where prod_name=‘一汽福士‘))
in代表有多種可能,當不確定的時候用。
(2)相互關聯的子查詢
子查詢在執行的時候需要用到父查詢的內容
查詢汽車表中,汽車油耗小於該系列平均油耗的所有汽車資訊
select * from car where oil<(該系列平均油耗)
select avg(oil) from car where brand =(該系列)
select * from car a where oil<(select avg(oil) from car b where b.brand =a.brand)
a 和b代表代號 a是外表的car,b是執行裡面時候的car
稿源:七星互聯Qixoo.com
mysql 進階查詢