2015-04-23 78 views
1

我有两个表:usersbans。我想从禁止任何行中删除该行中的user (ID)未被激活的行为30 days或更多。我在我的users table中有一个名为last_session的列,其最后一次连接保存为timestamp(as an integer),我的bans表中的一列名为banned_user_id,它只是banned userID从表中删除其他表中的某些内容为真

回答

3

尝试在Prabin的回答以下

Delete b.* from bans b, users u 
where b.banned_user_id = u.ID 
and u.last_session < subdate(now(),30) 
0

的变化。我更喜欢使用连接。

delete b 
from bans b 
inner join users u on 
    b.banned_user_id = u.id 
where 
    u.last_session < subdate(now(),30) 
0

这一次只删除记录:从禁令表,如问题规定:

delete from bans 
where banned_user_id in (
    select user_id 
    from users 
    where last_session <= subdate(now(), 30) 
) 
相关问题