比较Sql表中的两列,并从第一个表中选择第二列中不存在的值

比较Sql表中的两列,并从第一个表中选择第二列中不存在的值,sql,Sql,考虑下表 ID|Parent_ID 1|0 2|0 3|1 4|1 5|1 6|2 7|2 8|3 9|3 10|5 11|7 所需的结果是,只需将列ID与列Parent_ID进行比较,以查找Parent_ID中不存在的值 Result 4 6 8 9 10 11 您不需要声明RDBMS。这是标准的SQL SELECT ID FROM YourTable EXCEPT SELECT Parent_ID FROM YourTable 或 如果使用MySQL: select id from

考虑下表

ID|Parent_ID
1|0
2|0
3|1
4|1
5|1
6|2
7|2
8|3
9|3
10|5
11|7
所需的结果是,只需将列ID与列Parent_ID进行比较,以查找Parent_ID中不存在的值

Result
4
6
8
9
10
11

您不需要声明RDBMS。这是标准的SQL

SELECT ID
FROM YourTable
EXCEPT
SELECT Parent_ID
FROM YourTable

如果使用MySQL:

select  id
from    tbl
where   id not in (select parent_id from tbl)
如果使用Oracle

select  id
from    tbl
minus
select  parent_id
from    tbl

如果使用SQL Server,则使用除上一个答案中所示之外的其他选项,这同样有效。观看演示


你的问题可能与一些格式有关?没有SQL数据库,SQL只是结构化查询语言,许多数据库系统都使用这种语言,但它不是数据库产品。很多东西都是特定于供应商的,所以我们确实需要知道您使用的是什么数据库系统(以及哪个版本)。。。。(请相应地更新标签)
select  id
from    tbl
minus
select  parent_id
from    tbl
select id from table1 
where id not in 
(
  select t1.id from table1 t1
join table1 t2
on t1.id = t2.parent_id
)
SELECT T1.ID FROM table AS T1
LEFT OUTER JOIN table AS T2
ON T1.ID = T2.Parent_ID
WHERE T2.ID IS NULL