這是我的 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
表的主鍵或唯一列/表達式。