2015-04-23 64 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) 
) 
相關問題