最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2021年10月24日 12:45:14   作者:ReganYue  
聯(lián)合查詢union將多次查詢(多條select語句)的結(jié)果,在字段數(shù)相同的情況下,在記錄的層次上進行拼接,這篇文章主要給大家介紹了關(guān)于Mysql聯(lián)合查詢的那些事兒,需要的朋友可以參考下

聯(lián)合查詢之union

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

其中,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="湖南省"
);

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

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="湖南省"
);

當(dāng)使用union all,不會消除重復(fù)行。

聯(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應(yīng)該是T_City和T_Province中的一個,不然就會報錯。

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

可以給表起個別名,將T_City表的別名設(shè)為tc,將T_Province的別名設(shè)為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個城市是哪個省的哪個市,查詢結(jié)果包括省名,市名,區(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

內(nèi)連接是基于左右兩表公共的部分

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

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

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

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
);

總結(jié)

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

相關(guān)文章

最新評論

兴义市| 东源县| 乐亭县| 伊金霍洛旗| 得荣县| 洮南市| 霞浦县| 中山市| 嘉善县| 凤阳县| 衢州市| 灌云县| 广德县| 鹤峰县| 孝义市| 屏山县| 临清市| 安阳市| 会昌县| 苏尼特右旗| 五大连池市| 高平市| 科技| 大方县| 南江县| 宝丰县| 个旧市| 光山县| 九龙城区| 凯里市| 特克斯县| 太康县| 怀柔区| 叙永县| 宁化县| 大新县| 民勤县| 庐江县| 安乡县| 荔浦县| 托克逊县|