3

假设我有 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 减去一组参加(今天)的 A,但怎么能我在 SQL 查询中这样做?我认为第一个查询被第二个查询减去但感到困惑。

4

2 回答 2

3
select * from b where 
not exists (select no from A where A.id=B.id and date=@yourdate)
于 2012-08-17T10:29:42.077 回答
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)
于 2012-08-17T10:29:44.187 回答