無法在多個表之間的 mysql 連線查詢中使用 LIMIT 刪除
P粉180844619
P粉180844619 2024-04-01 10:21:30
0
1
456

這是我的 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粉180844619
P粉180844619

全部回覆(1)
P粉166675898

只有單表DELETE支援LIMIT。

將查詢用作帶有 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 表的主鍵或唯一列/表達式。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板