mysql - Delete rows using JOIN -
i have 2 tables like:
offlineconversations
userid | messageid 100 15 100 16 100 17
messages
messageid | sentby | message | convid 15 200 "hi userid 100!" hash 16 200 "hi again 100!" hash 17 300 "hi user 300 :)" hash
so here, userid 100 received 3 messages, user 200 , 300 (determined sentby
in messages
table.
what want do, deleted rows in offlineconversations
, message sent user id 200, sentby
200 in messages. messageid in offlineconversations
table associated messageid in messages
offlineconversations left with:
userid | messageid 100 17
so basically, delete offlineconversations
rows userid 100 , sentby
(200) associated them.
convid
used history aspects. if de-activates account, rows messages
should not deleted. if user deletes account entirely, rows should deleted offlineconversations , messages well. 1 know can cascading pointed out in comments.
thanks
this query should work:
delete t.* offlineconversations t join messages m on m.messageid = t.messageid m.sentby = 200 , t.userid = 100;
if need delete messages also:
delete t.*,m.* offlineconversations t join messages m on m.messageid = t.messageid m.sentby = 200 , t.userid=100;
Comments
Post a Comment