mysql - SQL删除基于来自同一个表的查询的行?

标签 mysql sql

给出这个查询:

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/

相关文章:

mysql - 亚马逊极光 : Does a unique field allow multiple null values?

MySql 正则表达式转义撇号(’)

mysql - 为什么这个查询不起作用?

php - MySQL - 高效地交叉引用 ID 数组

sql - 将每月的第一天和最后一天放入变量中 - Oracle

sql - 如何使用 "Windows Login"为某个用户获取等效的 IS_MEMBER

mysql - MySQL 中的 GROUP BY 优先级

php - 这里我的 SQL 语法有什么问题?

mysql - 如何在 T-SQL 中选择一列中具有相同值的多个条目

Mysql更新日期年份