人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

詳細聊聊關于Mysql聯(lián)合查詢的那些事兒

發(fā)布日期:2022-02-05 19:43 | 文章來源:gibhub

聯(lián)合查詢之union

union可以合并兩個以上 select語句查詢出來的表,并消除表中的重復行。

其中,select語句需要擁有相同數(shù)量和相同數(shù)據(jù)類型的列。

1. 查詢中國各省的ID以及省份名稱

select ProID,ProName from T_Province

2. 湖南省所有地級市ID、名字

select CityID,CityName from T_City
where ProID = (
    select ProID from T_Province where ProName="湖南省"
);

3. 用union將他們合并

select ProID,ProName from T_Province
union
select CityID,CityName from T_City
where ProID = (
    select ProID from T_Province where ProName="湖南省"
);

這樣就得到兩個查詢結果的并集了。

UNION 合并后的集合中的列名總是等于 UNION 中第一個 SELECT 語句中的列名。

聯(lián)合查詢之union all

select ProID,ProName from T_Province
union all
select CityID,CityName from T_City
where ProID = (
    select ProID from T_Province where ProName="湖南省"
);

當使用union all,不會消除重復行。

聯(lián)合查詢之inner join

1. 查詢湖北省有多少地級市

不用聯(lián)合查詢:

select count(CityID) from T_City
where ProID = (select ProID from T_Province where ProName="湖北省")

通過ProID將兩張表連接在一起

select ProName,CityName from(
    T_City join T_Province
    on T_City.ProID = T_Province.ProID
)
where ProName="湖北省"

2. 統(tǒng)計各省地級市的數(shù)量,輸出省名、地級市數(shù)量

select T_City.ProID,ProName,count(CityID) as cc from(
    T_City join T_Province
    on T_City.ProID = T_Province.ProID
)
group by T_City.ProID
order by cc desc;

什么的select語句中要輸出的ProID應該是T_City和T_Province中的一個,不然就會報錯。

兩個表之間需要有共同的(列名不一定相同)“語言”才能join。

可以給表起個別名,將T_City表的別名設為tc,將T_Province的別名設為tp。

select tc.ProID,ProName,count(CityID) as cc from(
    T_City tc join T_Province tp
    on T_City.ProID = T_Province.ProID
)
group by tc.ProID
order by cc desc;

3. 查詢擁有20個以上區(qū)縣的城市,輸出城市名,區(qū)縣數(shù)量

select CityName,count(DisName) disCount from (
    T_City tc join T_District td
  on tc.CityID = td.CityID
)
group by CityName
having disCount > 20;

聯(lián)合查詢之三表聯(lián)合

1. 區(qū)縣最多的3個城市是哪個省的哪個市,查詢結果包括省名,市名,區(qū)縣數(shù)量

select tp.ProName,tcd.CityName,tcd.ci from
(
select ProID,CityName,count(ID) ci from(T_City tc join T_District td on tc.CityID = td.CityID) 
  
group by tc.CityID
order by ci desc
limit 3
)tcd
join T_Province tp on tcd.ProID = tp.ProID;

聯(lián)合查詢之left join&right join

內連接是基于左右兩表公共的部分

左連接是基于左右兩表公共的部分加上左表特有的部分

右連接是基于左右兩表公共的部分加上右表特有的部分

查詢所有省份和它的城市信息

select * from(
T_Province tp join T_City tc
on tp.ProID = tc.ProID
);

查詢所有省份和它的城市信息和沒有城市的省份信息

select * from(
T_Province tp left join T_City tc
on tp.ProID = tc.ProID
);

查詢所有省份和它的城市信息和沒有省份的城市信息

select * from(
T_Province tp right join T_City tc
on tp.ProID = tc.ProID
);

總結

到此這篇關于Mysql聯(lián)合查詢的文章就介紹到這了,更多相關Mysql聯(lián)合查詢內容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持本站!

香港穩(wěn)定服務器

版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關注
微信

關注官方微信
頂部