使用LEFT join和GROUP BY删除行

时间:2018-04-04 09:21:06

标签: 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

但是我一直在犯错误,我做错了什么?

  

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在'left join hp_programs_list附近使用正确的语法     在第2行的hp_visitors_data.visitor_program_viewed = hp_pro'

1 个答案:

答案 0 :(得分:1)

对于删除,您应该使用内部联接,因此您只能处理与匹配的行 无论如何你使用没有聚合功能的组,但总体而言你需要一个表来删除

  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