[英]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.