Mysql 是否从匹配一个条件的表中删除,其中同一表中的行匹配不同的条件?

Mysql 是否从匹配一个条件的表中删除,其中同一表中的行匹配不同的条件?,mysql,Mysql,很抱歉这个大标题。。。我试图描述得足够清楚。我有一个表,其中包含事件出席数据,其中有一些错误的数据。表定义有点像这样: id (row id) date company_name attendees 在某些情况下,对于给定的日期,有两个条目与公司名称和日期匹配,但一个条目的Attendes=0,另一个条目的Attendes>0。在这些情况下,我希望放弃Attendes=0的情况 我知道你不能在删除时加入同一个表,所以请考虑这个查询是伪代码,它显示了我想完成的任务。 DELETE FROM at

很抱歉这个大标题。。。我试图描述得足够清楚。我有一个表,其中包含事件出席数据,其中有一些错误的数据。表定义有点像这样:

id (row id)
date
company_name
attendees
在某些情况下,对于给定的日期,有两个条目与公司名称和日期匹配,但一个条目的Attendes=0,另一个条目的Attendes>0。在这些情况下,我希望放弃Attendes=0的情况

<>我知道你不能在删除时加入同一个表,所以请考虑这个查询是伪代码,它显示了我想完成的任务。
DELETE FROM attendance a WHERE a.attendees=0 AND a.date IN (SELECT b.date FROM attendance b WHERE b.attendees > 0 AND b.company_name = a.company_name);

我还尝试用我要删除的行的ID填充一个临时表,但该查询由于在选择中。。。条款我的表有数千行,因此只需最大化CPU,然后超时

使用alias permit可以避免在FROM子句中无法指定更新目标表的错误


隐马尔可夫模型。。。如果一家公司在给定的日期只有一行,那么不管Attenders值如何,这不会删除该行吗?我在sqlfiddle中尝试过,我不知道该站点。很酷!我只剩下一行了。以您的表为例,我只想删除第一行。其余的都是正确的。我只想在某个日期的公司有重复行时删除,我只想删除0名与会者的行。@wtbgtr确定,我不明白。在其他代码中,我需要计算公司的缺勤情况,虽然这些信息与其他地方相关,但出席人数不一定是与会者。如果有多个代表在场,一家公司可以有多个代表出席。我想在按公司和日期分组的单独查询中选择缺勤或出勤次数。我相信它会起作用,除非我有这些错误的缺席记录与会者=0@wtbgtr不客气。对于你的未来,我必须承认我不明白这是否是另一个问题,如果这是一个问题,我不明白这个问题。。。
DELETE FROM attendance
WHERE (attendees, date, company_name)
IN (SELECT c.a, c.d, c.c 
    FROM
     (SELECT MIN(attendees) a, date d, company_name c
      FROM attendance
      GROUP BY date, company_name
      HAVING COUNT(*) > 1) as c);