两个查询之间的减法

时间:2012-08-17 10:26:10

标签: sql postgresql

假设我有2个数据库表:

table B是一组人,table A是来自table B的一组人

Table A = (no, id, date) no is PK, id refer to table B

Table B = (id, name) id is PK

我的目标是获取在给定日期没有参加的人(身份和姓名)的数据(比如今天的例子)理论似乎很简单,B组减去谁参加(今天),但我怎么能在SQL查询中这样做?我认为第一个查询被第二个查询减去了但却感到困惑。

2 个答案:

答案 0 :(得分:3)

select * from b where 
not exists (select no from A where A.id=B.id and date=@yourdate)

答案 1 :(得分:1)

如果我理解得恰到好处,那就是:

select b.id, b.name from tableB b where b.id not in (
   select b.id from tableA a
   inner join tableB b on a.id = p.id
   where a.date = CURRENT_DATE)