簡體   English   中英

MYSQL Join查詢三個表

[英]MYSQL Join query three tables

我需要檢索不同的project_name,其中任何worker_id及其supervisor_id都在同一項目中工作。 我知道答案是bb,dd和ee,但不知道要檢索的查詢。 這是我目前的查詢:

SELECT project.project_name, worker.supervisor_id, projectworker.worker_id
FROM project JOIN projectworker
on project.project_id = projectworker.project_id
JOIN worker
on worker.worker_id = projectworker.worker_id
order by project_name;

檢索:

project_name | supervisor_id | worker_id
aa                   4           1
aa                   4           1
aa                   4           2
aa                   4           3
bb                   12          5
bb                   NULL        12
dd                   4           3
dd                   4           6
dd                   3           7
dd                   4           3
ee                   NULL        12
ee                   4           1
ee                   2           8
ee                   1           9
ee                   9           10

這是一種方法。

SELECT project.project_name

FROM   project 

       JOIN projectworker
       on project.project_id = projectworker.project_id

       JOIN worker
       on worker.worker_id = projectworker.worker_id

WHERE  EXISTS (SELECT 1
               FROM   projectworker 
               WHERE  project_id = project.project_id AND worker_id = worker.supervisor_id)

GROUP BY project.project_name

ORDER BY project_name;

嘗試這個 :

SELECT distinct project.project_name, worker.supervisor_id, projectworker.worker_id
FROM project JOIN projectworker
on project.project_id = projectworker.project_id
JOIN worker
on worker.worker_id = projectworker.worker_id
where worker.project_id = projectworker.project_id
order by project_name;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM