我有两个表:users
和bans
。我想要禁止禁止该行中的user (ID)
未对30 days
或更长时间有效的任何行。我的last_session
中有一个名为users table
的列保存为其上次连接的timestamp(as an integer)
,以及bans
表中名为banned_user_id
的列,只是ID
的{{1}}。
答案 0 :(得分:3)
尝试以下
Delete b.* from bans b, users u
where b.banned_user_id = u.ID
and u.last_session < subdate(now(),30)
答案 1 :(得分:0)
Prabin答案的变体。我更喜欢使用连接。
delete b
from bans b
inner join users u on
b.banned_user_id = u.id
where
u.last_session < subdate(now(),30)
答案 2 :(得分:0)
这个只删除禁令表中的记录,如问题所示:
delete from bans
where banned_user_id in (
select user_id
from users
where last_session <= subdate(now(), 30)
)