前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL数据库,子查询学习,高手必备(二)

MySQL数据库,子查询学习,高手必备(二)

作者头像
用户1289394
发布2021-11-05 09:29:39
4010
发布2021-11-05 09:29:39
举报
文章被收录于专栏:Java学习网

标量⼦查询

⼀般标量⼦查询,示例

查询谁的⼯资⽐Abel的⾼?

/*①查询abel的⼯资【改查询是标量⼦查询】*/

SELECT salary

FROM employees

WHERE last_name = 'Abel';

/*②查询员⼯信息,满⾜salary>①的结果*/

SELECT *

FROM employees a

WHERE a.salary > (SELECT salary

FROM employees

WHERE last_name = 'Abel');

多个标量⼦查询,示例

返回jobid与141号员⼯相同,salary⽐143号员⼯多的员⼯、姓名、jobid和⼯资

/*返回job_id与141号员⼯相同,salary⽐143号员⼯多的员⼯、姓名、job_id和⼯资*/

/*①查询141号员⼯的job_id*/

SELECT job_id

FROM employees

WHERE employee_id = 141;

/*②查询143好员⼯的salary*/

SELECT salary

FROM employees

WHERE employee_id = 143;

/*③查询员⼯的姓名、job_id、⼯资,要求job_id=① and salary>②*/

SELECT

a.last_name 姓名,

a.job_id, a.salary ⼯资

FROM employees a

WHERE a.job_id = (SELECT job_id

FROM employees

WHERE employee_id = 141)

AND

a.salary > (SELECT salary

FROM employees

WHERE employee_id = 143);

⼦查询+分组函数,示例

查询最低⼯资⼤于50号部门最低⼯资的部门id和其最低⼯资【having】

/*查询最低⼯资⼤于50号部门最低⼯资的部门id和其最低⼯资【having】*/

/*①查询50号部门的最低⼯资*/

SELECT min(salary)

FROM employees

WHERE department_id = 50;

/*②查询每个部门的最低⼯资*/

SELECT

min(salary),

department_id

FROM employees

GROUP BY department_id;

/*③在②的基础上筛选,满⾜min(salary)>①*/

SELECT

min(a.salary) minsalary,

department_id

FROM employees a

GROUP BY a.department_id

HAVING min(a.salary) > (SELECT min(salary)

FROM employees

WHERE department_id = 50);

错误的标量⼦查询,示例

将上⾯的⽰例③中⼦查询语句中的min(salary)改为salary,执⾏效果如下:

mysql> SELECT

min(a.salary) minsalary,

department_id FROM employees a

GROUP BY a.department_id

HAVING min(a.salary) > (SELECT salary

FROM employees

WHERE department_id = 500000);

ERROR 1242 (21000): Subquery returns more than 1 row

错误提⽰:⼦查询返回的结果超过了1⾏记录。

说明:上⾯的⼦查询只⽀持最多⼀列⼀⾏记录。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档