假设我有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查询中这样做?我认为第一个查询被第二个查询减去了但却感到困惑。
答案 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)