这是我的 SQL 查询:
DELETE gur FROM group_master gm JOIN group_users gu ON gu.group_id=gm.id JOIN group_user_roles gur ON gur.group_user_id=gu.id WHERE gm.school_code = 14741359 AND gm.ayid=3 LIMIT 1;
我收到错误消息,指出 LIMIT 附近存在语法错误。我在这里找到了一个解决方案:DELETE using LEFT JOIN with LIMIT in MySQL。 我无法将查询转换为选择语句。
P粉1666758982024-04-02 00:49:42
只有单表DELETE支持LIMIT。< /p>
将查询用作带有 LIMIT 的 SELECT 并获取行的 ID(记住 - 没有 ORDER BY 的 LIMIT 是一种彩票)。然后从另一个表副本中删除相应的行。
DELETE group_user_roles FROM group_user_roles JOIN (SELECT gur.id FROM group_master gm JOIN group_users gu ON gu.group_id=gm.id JOIN group_user_roles gur ON gur.group_user_id=gu.id WHERE gm.school_code = 14741359 AND gm.ayid=3 /* ORDER BY ??? */ LIMIT 1 ) USING (id)
将 id
替换为 group_user_roles
表的主键或唯一列/表达式。