mysql 使用pivot的SQL连接

qvk1mo1f  于 11个月前  发布在  Mysql
关注(0)|答案(2)|浏览(84)

我有几个表要连接,它们是通过一个透视表连接的。
我有一个projects表,一个employees表和一个名为employee_project的pivot表,它既有project_id又有employee_id
| ID|员工ID|项目ID|
| --|--|--|
我想从employees表中获取first_namelast_name,但where子句应该在projects表中的company_idcourse_id中搜索。
到目前为止,我有:

SELECT * 
FROM projects
JOIN employees
     ON employees.id = employee_project.employee_id
JOIN employee_project 
     ON projects.id = employee_project.project_id 
WHERE course_id = 3 AND company_id = 150004

字符串
但这显然没有达到预期效果。

qhhrdooz

qhhrdooz1#

你的查询中的问题是你在连接之前使用了employee_project表。我只是改变了连接的顺序,它似乎工作了!

SELECT
    employees.first_name,
    employees.last_name 
FROM
    projects
    JOIN employee_project ON projects.id = employee_project.project_id
    JOIN employees ON employees.id = employee_project.employee_id 
WHERE
    projects.course_id = 3 
    AND projects.company_id = 150004;

字符串
这应该为您给予与符合您的标准的项目相关联的员工的first_namelast_name

doinxwow

doinxwow2#

应先连接employee_project表,然后再连接employees表

SELECT * 
FROM projects 
JOIN employee_project  ON projects.id = employee_project.project_id  
JOIN employees ON employees.id = employee_project.employee_id 
WHERE course_id = 3 AND company_id = 150004 ;

字符串

相关问题