SQL 多表查询和嵌套查询 include:子查询返回的值不止一个、查询最低收入大于3700的部门

本文深入解析了如何使用SQL进行复杂的数据查询,包括通过子查询和分组来筛选特定条件的记录,例如查找最低收入大于设定阈值的部门及其名称。同时,文章强调了在SQL查询中正确使用IN关键字而非等号的重要性,避免了常见的查询错误。

如图三表:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

题目:
在这里插入图片描述
解决方案:(参考博客链接

select DepartmentName from Department where DepartmentID in
(select MinSalary.DepartmentID as DepartmentID from
  (select sal.DepartmentID,MIN(sal.income) as minincome from  //✅用as为列命名以便后面使用
    	(	select DepartmentID,Salary.*
			from Salary,Employee 
			where Salary.EmployeeID = Employee.EmployeeID //✅等值链接
		) as sal //查询带有DepartmentID的工资信息表并命名为sal
	group by sal.DepartmentID
  )as Minsalary//查询每个部门的最低收入(根据DepartmentID分组)
	 where Minsalary.minincome >3700 //查询最低收入大于3700的部门DepartmentID
)//查询最低收入大于3700的部门详细信息

同类型练习题及解决:
Q:查询收入大于平均收入的所有雇员的个人信息
A:在这里插入图片描述

注意:

  1. where 后使用=号连接可能会报错:❌子查询返回的值不止一个。当子查询跟随在=、!=、、>= 之后,或子查询用作表达式时,这种情况是不允许的。 解决: 把等号改为in
  2. 要用as命名列名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值