简介:
感谢微信给予的个人认证,专注于PHP、数据库技术领域知识经验分享。
题目一:
user 表包含所有员工信息,每个员工有其对应的 id , salary 和 company_id。 例如下图:
company 表包含公司所有部门的信息。 例如下图:
编写一个 SQL 查询,找出每个部门工资最高的员工。例如,根据上述给定的表格,王五 在 销售部门有最高工资,二麻子 在 技术部门有最高工资。
解答方法:
这里给大家提供 1 种解答方式 ,非常骚操作~~~(以下解答方式,已经过测试)
第一种: 使用 Join 和 in 的方式 因为 user 表包含 salary 和 company_id 字段,我们可以以此在部门内查询最高工资。
SELECT
company.name AS 'company',
user.name AS 'user',
salary
FROM
user
JOIN
company ON user.company_id = company.id
WHERE
(`user`.company_id , salary) IN
( SELECT
company_id, MAX(salary)
FROM
`user`
GROUP BY company_id
)
注意:有可能有多个员工同时拥有最高工资,所以最好在这个查询中不包含雇员名字的信息。
然后,我们可以把表 user 和 company 连接,再在这张临时表里用 IN 语句查询部门名字和工资的关系。
结尾总结:
这 1 道题类型评定:中等类型 。主要就是利用 JOIN 与 IN 方式去搜索找到.
大家肯定会想,IN 还有如此骚操作,还可以这么用~快去试试吧~
恭喜你、打卡成功一天,记得留言区评论:打卡+ x 天(x代表你打卡次数); 机器人会统计打卡次数,每周公布一次打卡数据。
同时,为了方便大家学习,我会把一些源码、技术干货存储到 github 中,随时可以在微信群 进行交流,扫下面二维码 ,备注 “技术进群” 就可以通过审核。
进群的小伙伴请加右侧私人微信(备注:技术进群)