我有2个mySQL表。它们都是个人信息列表(姓名,电话号码,电子邮件等)。
尽管字段名称相似,但它们并不相同。
我需要从第一个表中删除包含第二个表中的电话号码的行。
这是否可能,有人能指出我正确的方向吗?
提前致谢。
答案 0 :(得分:5)
delete t1
from first_table t1
join second_table t2 on t1.phone = t2.phone
答案 1 :(得分:3)
试试这个:
DELETE FROM `table1` WHERE `phonenumber` IN (SELECT `phonenumber` FROM `table2`)
答案 2 :(得分:1)
首先,编写一个标识要删除的行集的查询。例如:
SELECT o.*
FROM table_one o
JOIN table_two t
ON o.phone_number = t.phone_number
确认这是您要删除的行集。 (如果要存储要删除的行的备份副本,这也很方便。如果table_two中有多行具有相同的电话号码,则可以使用table_one的主键添加GROUP BY子句,或者是DISTINCT关键字等)
通过将SELECT关键字和选择列表替换为DELETE o.*
(如果它是要删除的table_one中的行),将SELECT语句转换为DELETE语句。