mysql - MySQL过去试卷中的select语句问题
问题描述
我翻阅了过去的一篇论文,发现了一些我不能做的选择语句。任何人都可以帮助解决这些问题吗?我正在使用 MySQL。谢谢
架构:
employee = (employee id, name, address, date of birth, salary)
project = (project id, name, budget, start date, end date)
manages = (employee id, project id)
works on = (employee id, project id)
问题 :
从事当前项目(尚未结束)的所有员工的姓名和地址
项目经理的姓名,按他们管理的员工总数排序
从事预算金额最大的项目的员工的姓名。
我的尝试:
1.
select employee.name, address
from employee natural join works_on natural join project
where end_date is null
2.
select employee.name, count(works_on.employee_id) as manages_count
from (employee natural join manages) joins works_on using (employee_id)
I'm completely lost I cannot even attempt this one ^
3.
select employee.name, address, budget
from employee natural join works_on natural join project
order by budget
limit n
^ I know this is wrong as technically I should be able to show them without a limit
解决方案
干得好:
1.
select
e.name,
e.address
from employee e
join works_on w on w.employee_id = r.employee_id
join project p on p.project_id = e.project_id
where p.end_date is null
2.
select
n.name
from employee n
join manages m on m.employee_id = n.employee_id
join works_on w on e.project_id = m.project_id
group by n.employee_id
order by count(*) desc
3.
select
e.name
from employee e
join works_on w on w.employee_id = e.employee_id
join project p on p.project_id = w.employee_id
where p.project_id in (
select project_id from project where budget = (
select max(budget) from project
)
)
推荐阅读
- python - 在 For 循环内使用 Try/Except 更改 BeautifulSoup URL
- javascript - 在 Nuxt.js 的 SPA 模式下 process.env 不可用
- python - 根据全局变量设置选择不同的功能
- javascript - Asp.net Webform 中用于多项选择问题的单选按钮
- c# - 一段时间后删除图片框
- c++ - 当我们可以声明,而不是定义,但仍然在 C++ 中使用这些函数时
- typescript - 解决外面的承诺
- acumatica - 如何解决“ClientSideAppsHelper.RenderScriptConfiguration 已过时”
- angular - Angular:Service Observable 不会在组件中触发
- jquery - 按下向下箭头键时无法将类添加到自动完成 ul il 列表并且无法专注于 li 列表元素(不使用 jquery UI)