Maison  >  Questions et réponses  >  le corps du texte

Impossible d'utiliser LIMIT delete dans la requête de jointure mysql entre plusieurs tables

Voici ma requête 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;

Je reçois une erreur indiquant qu'il y a une erreur de syntaxe proche de LIMIT. J'ai trouvé une solution ici : DELETE en utilisant LEFT JOIN avec LIMIT dans MySQL. Je ne parviens pas à convertir la requête en instruction select.

P粉180844619P粉180844619185 Il y a quelques jours394

répondre à tous(1)je répondrai

  • P粉166675898

    P粉1666758982024-04-02 00:49:42

    Une seule table DELETE prend en charge LIMIT. < /p>

    Utilisez la requête comme SELECT avec LIMIT et obtenez l'ID de la ligne (rappelez-vous - LIMIT sans ORDER BY est une loterie). Supprimez ensuite les lignes correspondantes de l’autre copie du tableau.

    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)
    

    sera id 替换为 group_user_roles la clé primaire ou la colonne/expression unique de la table.

    répondre
    0
  • Annulerrépondre