查询应该返回表中的非现有值

时间:2015-10-08 17:19:32

标签: mysql sql database oracle

我有

  • 主键列表(大约10个)。
  • 一张表有100行。

如果表中有8个键,可以说我有10个键。

我需要表中没有的其余2个键的输出。

例如:我需要在Empl表中查询10个empl id' s。 Empl表有100行甚至更多行。在我拥有的10个empl id中,empl表中只有8个。我需要得到余下的两个empl id,它们不在empl表中。 注意:如果您不使用,它将从empl表中提供所有其他empl id。但我只需要那些不存在的那两个。

3 个答案:

答案 0 :(得分:1)

为了使查询更短一点,我举一个你需要在表中检查的3个键的例子

select k.*
from
(
  select 1 as pk
  union all
  select 3
  union all
  select 7
) k
left join your_table t on t.id = k.pk
where t.id is null

答案 1 :(得分:0)

select * from table where my_key not in (select distinct my_key from the_other_table)

答案 2 :(得分:0)

SELECT *
FROM Table10 T
WHERE not exists ( SELECT 1
                   FROM Table100 Q
                   WHERE T.ID = Q.ID )