标签:salary employees 查询 job sql99 MySQL WHERE id SELECT
标量子查询
案例:谁的工资比Abel高?
# ①查询Abel的工资
SELECT `salary`
FROM `employees`
WHERE `last_name`='Abel';
发现是一行一列 为标量子查询
# ②查询员工的信息,满足salary>①结果
SELECT *
FROM `employees`
WHERE `salary`>(
SELECT `salary`
FROM `employees`
WHERE `last_name`='Abel'
);
整道题的结果就出来啦
案例:返回job_id与141号员工相同,salary比143号员工多的员工 姓名,job_id和工资
# 案例:返回job_id与141号员工相同,salary比143号员工多的员工 姓名,job_id和工资
# ①查询141号员工的job_id
SELECT `job_id`
FROM `employees`
WHERE `employee_id`=141;
# ②查询员工的salary
SELECT `salary`
FROM `employees`
WHERE `employee_id`=143;
# ③返回job_id与141号员工相同,salary比143号员工多的员工 姓名,job_id和工资
SELECT `first_name`,`job_id`,`salary`
FROM `employees`
WHERE `job_id`=(
SELECT `job_id`
FROM `employees`
WHERE `employee_id`=141
)
AND `salary`>(
SELECT `salary`
FROM `employees`
WHERE `employee_id`=143
);
在子查询中运用分组函数
案例:返回公司工资最少的员工的last_name,job_id和salary
# 案例:返回公司工资最少的员工的last_name,job_id和salary
# ①查询公司的最低工资
SELECT MIN(`salary`)
FROM `employees`;
# ②查询last_name,job_id和salary,要求salary=①
SELECT `last_name`,`job_id`,`salary`
FROM `employees`
WHERE `salary`=(
SELECT MIN(`salary`)
FROM `employees`
);
在having后面用子查询
案例:查询最低工资大于50号部门最低工资的部门id和其最低工资
# 案例:查询最低工资大于50号部门最低工资的部门id和其最低工资
# ①查询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(`salary`),`department_id`
FROM `employees`
GROUP BY `department_id`
HAVING MIN(`salary`)>(
SELECT MIN(`salary`)
FROM `employees`
WHERE `department_id`=50
);
标签:salary,employees,查询,job,sql99,MySQL,WHERE,id,SELECT 来源: https://www.cnblogs.com/jgg54335/p/14963331.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。