给定此查询:

SELECT cur.`id`
FROM `current` AS cur
LEFT OUTER JOIN (
    SELECT MAX(EndDay_id.id) as id, EndDay_id.server_id
    FROM current as EndDay_id
    GROUP BY server_id, gameday
    ) AS EndDay
ON cur.id = EndDay.id
WHERE EndDay.id IS null


如何从表“ current”中删除其ID字段位于先前查询的结果集中的行?

最佳答案

尝试这个

DELETE cur FROM `current` AS cur
LEFT OUTER JOIN (
    SELECT MAX(EndDay_id.id) as id, EndDay_id.server_id
    FROM current as EndDay_id
    GROUP BY server_id, gameday
    ) AS EndDay
ON cur.id = EndDay.id
WHERE EndDay.id IS null


我测试了它,它应该可以工作:http://sqlfiddle.com/#!2/a47c81

关于mysql - SQL从同一表中基于查询删除行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26440500/

10-14 13:08
查看更多