MYSQL-删除SQL中一个表中的数字(如果它存在于另一个表中)
如果一个SQL表中的数据与另一个表中的数据相匹配,我需要一些帮助来删除它 有两张桌子MYSQL-删除SQL中一个表中的数字(如果它存在于另一个表中),mysql,Mysql,如果一个SQL表中的数据与另一个表中的数据相匹配,我需要一些帮助来删除它 有两张桌子 Table 1: DNC Table 2: Call_Logs 表1只有一列名为phone_number。 表2有多个列,但最重要的一列也是phone_number 基本上,我想从表1中删除表2中的任何数字,如果它们存在的话。现在,我不想删除表1中的每个数字,如果它们存在于表2中。我从表2中收集的数字是基于一些标准的 为了从表2中提取需要从表1中删除的数据,我使用以下方法: select phone_numb
Table 1: DNC
Table 2: Call_Logs
表1只有一列名为phone_number。
表2有多个列,但最重要的一列也是phone_number
基本上,我想从表1中删除表2中的任何数字,如果它们存在的话。现在,我不想删除表1中的每个数字,如果它们存在于表2中。我从表2中收集的数字是基于一些标准的
为了从表2中提取需要从表1中删除的数据,我使用以下方法:
select phone_number from call_logs where call_date < 'DATE' and Status = 'DNC'
此查询将为我提供一个列表,其中列出了我希望从表1中删除的所有电话号码(如果存在)
例如:
我不确定如何在SQL中运行查询。任何类型的都将不胜感激。期待您的img样品 您可以在表2中使用一个左联接,其中table2.phone_number为null别名不匹配
delete from table1
left join table2 on table1.phone_number = table2.phone_number
where table2.phone_number is null
存在关联子查询w/an,因此它可以提前退出 子查询中的select 1是因为我们必须选择一个值,但它与值无关。因为着色DNC.Phone_Number=CL.Phone_Number是我们追求的全部;以及你在通话记录上的限制
DELETE
FROM DNC
WHERE exists (SELECT 1
FROM Call_logs CL
WHERE CL.call_date < 'DATE'
and CL.Status = 'DNC'
and DNC.Phone_Number = CL.Phone_Number)