删除第二个表中的行

时间:2012-11-18 17:22:21

标签: mysql sql

我想知道是否有人可以帮助我 我有两个表1)配置文件2)mailbox_conversation 每个表都有一个名为profile_id

的公共列

我想找到配置文件表中拥有membership_id = 107的所有成员(即获取成员类型为107的成员的子集,它们将通过profile_id列在数组中) 然后使用该成员子集,找到表mailbox_conversation中在子集中具有profile_id的所有会话 - 因此许多电子邮件可能具有相同的profile_id,并且我希望它们全部被删除

2 个答案:

答案 0 :(得分:2)

查找与membership_id = 107

的个人资料相对应的电子邮件
select m.id
from mailbox_conversation m
join profile p on p.profile_id = m.profile_id
                  and p.membership_id = 107

删除这些记录

delete from mailbox_conversation
using mailbox_conversation, profile
where profile.profile_id = mailbox_conversation.profile_id
      and profile.membership_id = 107;

SQL Fiddle可以玩。

答案 1 :(得分:0)

试试这个

select t1.profile_id from mailbox_conversation t1 where t1.profile_id in 
(select t2.profile_id from profile t2 where t2.membership_id = 107 )