mysql学习-查询语句进阶

本文深入讲解了SQL子查询的各种应用场景,包括一行一列的简单条件判断、枚举查询、一行多列的比较操作以及多行多列的复杂查询。通过实际例子演示了如何使用子查询提高SQL查询效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查询语句

#查询的进阶
#子查询 一行一列
SELECT NAME,Population FROM city WHERE Population>(SELECT Population FROM city WHERE NAME='Herat') ORDER BY Population ASC;
#子查询得到一行一列的结果 才可以做外部查询的条件判断
#子查询做枚举查询的条件
SELECT CountryCode,NAME,Population FROM city WHERE Population IN(SELECT Population FROM city WHERE CountryCode='NLD') ORDER BY Population ASC;
#子查询 一行多列
#all 高于所有,要高于数值最高的    any 高于部分,只要高于数值最低的就算 
SELECT CountryCode,NAME,Population FROM city 
WHERE Population >ALL(SELECT Population FROM city WHERE CountryCode='NLD') 
ORDER BY Population ASC;
SELECT CountryCode,NAME,Population FROM city 
WHERE Population >ANY(SELECT Population FROM city WHERE CountryCode='NLD') 
ORDER BY Population ASC;
#子查询 多行多列
SELECT NAME,Population FROM
(SELECT NAME,Population FROM city ORDER BY Population ASC) AS temp
LIMIT 0,5;
#聚合函数嵌套子查询 要用as取名提到临时表格
SELECT MAX(ttt) FROM (SELECT Population AS ttt FROM city WHERE CountryCode='NLD') AS aaa;
#合并查询 要求列数相同 列数据类型可以不同
#union 去除重复的数据 union all 不去除
(SELECT NAME,Population FROM city LIMIT 0,5) UNION (SELECT NAME,Population FROM country LIMIT 0,5);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静安书以沫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值