mysql - 使用 LEFT join 和 GROUP BY 删除行

标签 mysql group-by left-join

我正在尝试根据另一个表的状态删除表上的记录。

delete from hp_visitors_data
left join hp_programs_list
  on hp_visitors_data.visitor_program_viewed = hp_programs_list.id
where hp_programs_list.program_add_status = 3
group by hp_visitors_data.visitor_program_viewed

但我一直收到错误,我做错了什么?

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'left join hp_programs_list on hp_visitors_data.visitor_program_viewed = hp_pro' at line 2

最佳答案

对于删除,您应该使用内部联接,以便您只处理匹配的行
无论如何,您正在使用没有聚合功能的分组,但总的来说,您需要一个用于删除的表

  delete hp_visitors_data.*  
  from hp_visitors_data
  INNER  join hp_programs_list
    on hp_visitors_data.visitor_program_viewed = hp_programs_list.id 
      and hp_programs_list.program_add_status = 3

关于mysql - 使用 LEFT join 和 GROUP BY 删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49647252/

相关文章:

php - 有人可以将来自不同主机的表单数据发送到我的 PHP 脚本,该脚本将获取的数据插入 MySQL 吗?如果是这样,我们如何保护它?

python - 使用逻辑索引和分组依据在 panda 数据框中创建新列

linq-to-entities - LINQ to EF left join with multiple conditions

php - 如何将 MySQL 查询转换为 Laravel Eloquent 查询?

c# - EF Core 到 Mysql 表绑定(bind)

mysql - SQL给我里面的用户小于30的类(class)

Linq GroupBy 如果它们被其他键分隔,则不合并具有相同键的分组

mysql - LEFT JOIN 与 GROUP BY 返回意外结果

mysql - LEFT JOIN 运行速度非常慢,但嵌套 select 却不会

mysql - 我如何优化我的 mysql 查询?