mySQL通过多个表查询

时间:2015-07-31 00:09:23

标签: mysql sql multiple-tables

我在这里的第一篇文章。我有一个在mysql中交付的任务,我在2个问题中发现了一个难点。

首先,数据库的表格如下:

departments (dep_no, dep_name)
dept_emp (emp_no, dept_no, from_date, to_date)
dept_manager (dept_no, emp_no, from_date, to_date)
employees (emp_no, birthdate, first_name, last_name, gender, hire_date)
salaries (emp_no, salary, from_date to_date)
titles (emp_no, title, form_date, to_date)

我遇到困难的两个问题是那些2:

  1. 哪个部门目前支付最高薪水,谁是部门经理?

  2. 市场部目前的平均工资是多少?

  3. 我真的很感谢你的帮助。
    干杯!

2 个答案:

答案 0 :(得分:0)

尝试第一个:

select d.dep_name AS department
,      CONCAT(e.first_name, e.last_name) AS department_manager
from salaries S
     inner join dept_emp de on s.emp_no = de.emp_no
     inner join departments d on de.dept_no = d.dept_no
     inner join dept_manager dm on de.dept_no = d.dept_no
     inner join employees e on dm.emp_no = e.emp_no
where s.salary = (select MAX(salary) from salaries)

第二个(如果市场营销部在表dept_manager):

select AVG(salary)
from   salaries S
       inner join dept_manager dm on s.emp_no = dm.emp_no 

答案 1 :(得分:0)

哪个部门目前支付最高薪水,谁是部门经理?

select dept_no from
dept_emp where emp_no in
(select emp_no from salaries 
where salary = (select max(salary) from salaries) )

市场部目前的平均工资是多少?

select avg(s.salary) as marketing_avg_salary
from salaries s join dept_emp de
on s.emp_no = de.emp_no
where de.dept_no = (select dept_no from departments where dept_name = 'Marketing')