我需要列出有员工 GLC
执行任务但没有员工 CAC
执行任务的客户名称及其项目名称.**
我尝试了以下方法,但得到的是一个空集:
select
c.custname, p.pjtitle
from
(select taskno pjno
from task
where taskno not in
(select taskno
from task
where empid = 'CAC')
and empid = 'GLC') t
join project p on p.pjno = t.pjno
join customer c on p.custno = c.custno;
如何正确使用join
和subquery
?
最佳答案
SELECT c.custname, p.pjtitle
FROM customer c
JOIN project p ON p.custno = c.custno
JOIN task t ON p.pjno=t.pjno
WHERE t.empid='GLC'
AND NOT EXISTS (SELECT NULL FROM task t1 WHERE t.pjno=t1.pjno AND t1.empid='CAC')
;
关于SQL。如何正确组合子查询和连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17120752/