SQL 获取未在项目中工作的名称

标签 sql postgresql

我想检索未在 PostgreSQL 中从事某个项目的人员的姓名。

我有一个名为 employees 的表,其中包含他们的 namesssn

我的第二个表称为 works_on,包括 ssnproject_number

ssn 这是来自 employees

外键

现在我尝试了以下方法:

SELECT fname,lname
FROM werknemer w
JOIN werkt_aan wa 
ON (wa.ssn = w.ssn)
WHERE wa.ssn <> w.ssn

但这不会返回任何内容,但我需要 1 个不在单个项目上工作的名称。 有人可以向我解释该怎么做吗?提前致谢。

最佳答案

这通常使用 NOT EXISTS 查询来解决:

select e.*
from employees e
where not exists (select *
                  from works_on wo
                  where wo.ssn = e.ssn)

关于SQL 获取未在项目中工作的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49296650/

相关文章:

database - 连接数据库出错

sql - 删除 R 中的模糊重复项

当我给 SQL Server 数据库邮件提供 HTML 正文时,它会发送空白消息

python - sqlite3 fetchall 有必要吗?

sql - 在插入/更新之前使用触发器重新排序相邻行(更高/更低)

postgresql - 如何在 Go 中表示 PostgreSQL 区间

mysql - 如何结合SQL查询的where和order

mysql - 如何将 MySQL 中的自动递增计数器从 +1 更改为 +43

mysql - 根据先前查询的结果集更新百万行

mysql - SQL Server切换到MySQL/PostgreSQL启动?