找到0值的记录的问题是 “找项目经理那些谁不管理任何项目,列表名称和ID”如何通过比较两个表
第一个表是“PM”第二个表是“Projects” 如何编写此查询?我尝试了下面的查询,但它没有奏效。
select a.ID,a.name
from PM a,Projects b
where a.ID=b.ID
group by a.name
having COUNT(b.ID)=0;
找到0值的记录的问题是 “找项目经理那些谁不管理任何项目,列表名称和ID”如何通过比较两个表
第一个表是“PM”第二个表是“Projects” 如何编写此查询?我尝试了下面的查询,但它没有奏效。
select a.ID,a.name
from PM a,Projects b
where a.ID=b.ID
group by a.name
having COUNT(b.ID)=0;
不能只是你一个左连接在这里:
SELECT
a.ID, a.name
FROM PM a
LEFT JOIN Projects b
ON a.ID = b.ID
WHERE b.ID IS NULL
但你的表结构是根本不清楚给我。让管理员ID列在两个表中都具有相同的名称是令人困惑的。
另外,您在当前查询中正在执行隐式内部联接。不是邪恶的,但它肯定会让你很难看出你如何关联这两张桌子。有了明确的左边加入,希望清楚这里发生了什么。那些没有项目的经理记录PM
因此将匹配到没有项目记录。此标记将是一个(单个)管理器记录,其所有项目列都为空。
就是我要写的东西。 –
这是我需要的,非常感谢 –
尽量不要使用从PM a,项目b'的关联连接' –
在阅读你的代码时,看起来你的描述向后在哪个表上,但是提供的答案仍然是正确的。 –