Sqlite查询所有缺少的ID

时间:2015-12-02 16:15:10

标签: sql sqlite

我的数据库中有两张表,用户礼物。用户表获得了id和数据,礼品表获得了gift_id,user_id和data。

与users.id相关联的gitst.user_id

如何从礼品表中获取未出现在用户表中的所有user_id?

2 个答案:

答案 0 :(得分:1)

一种方法是使用except运算符。

select user_id from gifts
except 
select id from users

Except为您提供两组的差异。

让我们说集A = {1,2,3} B = {3,4,5,6}。

A-B = {1,2},因为3存在于两个集合中,1,2存在于A但不存在于B

B-A = {4,5,6} 3对两组都是共同的,4,5,6存在于B中但不存在于A

您也可以

select user_id from gifts 
where user_id not in (select id from users)

select user_id from gifts g
where not exists (select 1 from users where id = g.user_id) 

答案 1 :(得分:0)

select user_id from gifts not exists(select id from users)