日期:2014-05-16  浏览次数:20761 次

求解答:SQL语句 --- 找出在给定列表但不在数据库表中的值

  假设在数据库的表 user 中有一个字段 user_id , 其值有 (1,2,3,4,5) (也就是说有5行记录), 有一个外部给定列表 L (1,2,3,4,5,6,7)

  要求找出在 L 中但不在数据库user表中的值 (6,7) 怎么写SQL 语句 ?


  最好一条 SQL 语句解决, 不用存储过程,或者其它复杂的解决方案。

------解决方案--------------------
select a.* from (
select 1 as id 
union all
select 2 as id 
union all
...
union all
select 7 as id ) a where id not in (select user_id from user)


------解决方案--------------------
select *
from L
where L.user_id not in (select user_id from user)
------解决方案--------------------
1种是循环数组,1种是将数组放入到表中,再判断,没有简单的方法