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

版权声明:Wechat:chi0707007 微博:奇葩奇葩铁树开花 https://blog.csdn.net/weixin_44986776/article/details/89706081

如图三表:

在这里插入图片描述

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

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

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命名列名

猜你喜欢

转载自blog.csdn.net/weixin_44986776/article/details/89706081
今日推荐