假设我有 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 查询中这样做?我认为第一个查询被第二个查询减去但感到困惑。
假设我有 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 查询中这样做?我认为第一个查询被第二个查询减去但感到困惑。
select * from b where
not exists (select no from A where A.id=B.id and date=@yourdate)
如果我理解正确,它将是这样的:
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)