sql - 获取所有没有 child 的记录并且没有将任何 parent 映射到自引用表中? - SQL

标签 sql sql-server database oracle

我有一个自引用表,内容如下: Demo here 自引用父表

 emp_id man_id(FK of emp_id or ParentID)
    ---------------------
    1   (null)
    2   (null)
    3   (null)
    4   2
    5   2
    6   3
    7   3
    8   1
    9   (null)
    10  (null)
    11  (null)

帮我写 SQL 语句 For :(emp_id 没有任何关系)

emp_id
-----
9
10
11

Demo here

提前致谢

最佳答案

这样试试;

select e.emp_id from emp e where 
e.man_id is null and e.emp_id 
not in (select distinct man_id from emp where man_id is not null) 

另一种选择是使用left join;

select e.emp_id from emp e 
left join emp e2 ON e.emp_id = e2.man_id 
where e2.man_id is null and e.man_id is null

关于sql - 获取所有没有 child 的记录并且没有将任何 parent 映射到自引用表中? - SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48026829/

相关文章:

sql - 是否可以仅对列值的第一个实例进行 sql count() 操作?

sql - 验证所有存储过程是否有效

ruby-on-rails - Ruby on Rails 和数据库 :fixtures:load - can it ignore some models?

sql - 连接多个动态数据透视表

Mysql:如何仅在列(已接受)= 1 时选择?

python - Mysql查询查找每个月年的计数(id)

Php Mysqli 未定义函数

mysql - 服务器返回无效时区。转到“高级”选项卡并手动设置 servertimezone 属性

sql-server - 通过 SSMS 连接时 SQL Server 2012 Integration Services 失败

PHP 比较变量每次都返回 false