Partage
  • Partager sur Facebook
  • Partager sur Twitter

[MySQL] erreur #1093 target for update in FROM

Sujet résolu
    14 octobre 2019 à 14:27:28

    Bonjour,


    J'ai un soucis avec une de mes requêtes SQL que j'utilise pour un jeu que je code.
    Je veux faire en sorte de mettre à jour le score du joueur lorsqu'il se déconnecte.
    Pour faire ca je dois faire la somme des points que rapportent les défis que le joueur à fait et la mettre dans mon champ score de ma table joueurs.

    Lorsque j'effectue ma requête, j'obtient l'erreur "Can't specify target for update in FROM clause", je comprends cette erreur, je ne peux pas modifier une table et en même temps effectuer un SELECT dessus.

    J'ai déjà regardé plusieurs postes sans vraiment trouver comment faire comme celui la: https://www.developpez.net/forums/d4...n-from-clause/

    Mais ma question est comment est-ce que je peux faire pour passer outre ?


    UPDATE joueurs AS p1 
    SET p1.SCORE = 
    (
        SELECT SUM(MODFISCORE) 
        FROM joueurs_defis NATURAL JOIN defis_typesimpacts 
        WHERE ETAT='2' AND ID_JOUEUR =(SELECT p3.ID_JOUEUR FROM joueurs AS p3 WHERE p3.PSEUDO ="Testeur")
    )
    WHERE p1.ID_JOUEUR = 
    (
         SELECT p2.ID_JOUEUR
         FROM joueurs AS p2 
         WHERE p2.PSEUDO = "Testeur"
    )


    Merci et j'espère être assez clair.


    EDIT:

    J'ai trouvé la réponse à ma question.

    Pour ceux que ca intéresse : 

    UPDATE  joueurs AS p1 
    SET p1.score = 
            (   SELECT  SUM(modfiscore) 
                FROM    joueurs_defis
                    NATURAL JOIN
                        defis_typesimpacts 
                WHERE   etat      = '2'
                    AND joueurs_defis.id_joueur = p1.id_joueur
            )
         WHERE   p1.pseudo = 'Testeur';

    -
    Edité par FistiPaul 17 octobre 2019 à 16:05:27

    • Partager sur Facebook
    • Partager sur Twitter

    [MySQL] erreur #1093 target for update in FROM

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown