Heim > Fragen und Antworten > Hauptteil
Das ist meine SQL-Abfrage:
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;
Ich erhalte die Fehlermeldung, dass in der Nähe von LIMIT ein Syntaxfehler vorliegt. Ich habe hier eine Lösung gefunden: DELETE mit LEFT JOIN mit LIMIT in MySQL. Ich kann die Abfrage nicht in eine Select-Anweisung umwandeln.
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
表的主键或唯一列/表达式。