从引用另一个表中的2列或多列的表中删除一条记录



考虑有两个表,如下所示。

表1:

活动YY
单位 SKU编号
A 1
B 2 Y
c 3

您可以使用与exists类似的逻辑:

DELETE
FROM table1 t1
WHERE EXISTS (SELECT 1 FROM table2 t2
WHERE t2.Unit = t1.Unit AND t2.SKU_Number = t1.SKU_Number);

您可以尝试使用此查询,假设表1Unit是唯一的:

DELETE FROM table1
WHERE table1.Unit IN (
SELECT table1.Unit 
FROM table1
LEFT JOIN table2 ON table1.Unit = table2.Unit
AND table1.SKU_Number = table2.SKU_Number
)

如果单位不是唯一字段,只需将其替换为唯一字段,或替换为表1的主键。

您可以使用内部联接进行删除:

DELETE t1
FROM table1  t1
INNER JOIN table2 t2
ON t1.unit=t2.unit and t1.SKU_Number = t2.SKU.Number

最新更新