如何扩展此SQL查询以删除与其结果的ID匹配的所有行?

时间:2016-03-05 09:51:26

标签: mysql

我正在学习更复杂的查询。使用下面的sql,它通过表查找可能的重复项,其中基本上是x = y或y = x。即它是相同的条目,但id是相反的列。

SELECT 
    a.match_id as a_match_id, 
    b.match_id as b_match_id 
FROM 
    matches a, 
    matches b 
WHERE 
    a.primary_linked_id=b.secondary_linked_id 
AND 
    a.secondary_linked_id=b.primary_linked_id 
AND 
    a.date = b.date';

我想要做的是,从b_match_id返回的列表中删除所有这些结果。

我只知道如何使用php,然后我将循环遍历所有这些结果并为每一行构建另一个sql查询。这很慢。

我如何基本上添加这样的东西:

DELETE FROM matches WHERE match_id=b_match_id 

..所以这一切都是通过1个查询完成的。

1 个答案:

答案 0 :(得分:1)

DELETE b
FROM
    matches a, 
    matches b 
WHERE 
    a.primary_linked_id=b.secondary_linked_id 
AND 
    a.secondary_linked_id=b.primary_linked_id 
AND 
    a.date = b.date

???