SQL。如何正确组合子查询和连接?

标签 sql oracle join subquery

我需要列出有员工 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;

如何正确使用joinsubquery

最佳答案

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/

相关文章:

mysql - 内部查询多列一个数据库

java - 使用 Spring 数据/Hibernate 删除 : ORA-01407: Cannot update to Null

sql - 连接查询是否正确?

MySQL - 何时建立一对一关系

mysql - MySQL 中使用 COUNT 和 WHERE 进行 JOIN 查询

php - mysql_fetch_row() 不是有效的结果资源

sql - 在sql中转换的传输总和

sql - 将数据汇总到 SQL Server 中的一行中

java - 将 java 对象存储为 clob 并检索

sql - 根据两列的分组插入表格数据