我正在尝试运行一个查询,该查询使用以下三个表选择信息,然后将结果合并为一个。
staff_members
s_id | name |salary_id(fk)| dept_id (fk) |
1 | John | 3 | 2 |
2 | Mike | 3 | 5 |
3 | Jen | 3 | 1 |
4 | Claire | 3 | 3 |
工资
id | salary |
1 | 28000 |
2 | 32000 |
3 | 34500 |
4 | 38000 |
bridge_team_staff
t_id (fk)| s_id (fk)|
2 | 2 |
3 | 1 |
4 | 2 |
1 | 3 |
2 | 4 |
这座桥梁解决了与团队和经理之间的多对多关系,因为一个经理可以有多个团队,而一个团队可以有一个以上经理。
我要运行的查询是根据网桥表中的team_id收集经理的姓名,dept_id和他们的薪水。
例如,如果我查询team_id 2上所有工作人员的姓名,dept_id和薪水,它将显示如下
name | dept_id | salary |
Mike | 2 | 34500 |
Claire | 3 | 34500 |
答案 0 :(得分:2)
如果我理解正确,则需要这样的查询:
SELECT m.name, m.dept_id, s.salary
FROM bridge_team_staff b
JOIN staff_members m ON(b.s_id = m.s_id)
JOIN salaries s ON(m.salary_id = s.id)
WHERE b.t_id = ?
答案 1 :(得分:0)
SELECT name, dept_id, salary
FROM staff_members JOIN
bridge_team_staff on s_id = s_id JOIN
salaries on salary_id = id