Partage
  • Partager sur Facebook
  • Partager sur Twitter

MYSQL UPDATE + WHERE + SELECT DISTINCT

    12 novembre 2019 à 22:38:37

    Bonjour à tous, je bloque sur une requête j'aurais aimé faire ceci :

    UPDATE joueur SET _pi=_pi+1 WHERE nom=(SELECT DISTINCT _owner  FROM `creatures`)

    soit, mettre à joue ma table joueur, pour les joueurs dont le nom, est présent dans la table créatures, mais j'aimerais pas de doublons.

    je trouve pas la bonne syntaxe pour lui parler comme il faut :)

    merci de votre aide

    • Partager sur Facebook
    • Partager sur Twitter
      13 novembre 2019 à 8:41:35

      Hello

      Lorsque tu fais des requêtes imbriquées, pense à vérifier le résultat de chacun des requêtes.

      Au hasard, ton Select peut renvoyer plusieurs valeurs.

      le "=" implique une seule valeur

      • Partager sur Facebook
      • Partager sur Twitter
      Un petit étudiant chinois perdu ^^'
        13 novembre 2019 à 9:12:28

        Bonjour,

        Avec MySQL tu peux faire des jointures dans le UPDATE :

        UPDATE
        	joueur J
        		INNER JOIN creatures C
        			ON J.nom = C._owner
        SET J._pi = J._pi+1;

        Au passage, ce n'est pas terrible de stocker le nom dans la table créatures, il vaudrait mieux utiliser l'id du joueur ...

        -
        Edité par Benzouye 13 novembre 2019 à 9:23:40

        • Partager sur Facebook
        • Partager sur Twitter
        Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
          13 novembre 2019 à 20:36:52

          Benzouye a écrit:

          Bonjour,

          Avec MySQL tu peux faire des jointures dans le UPDATE :

          UPDATE
          	joueur J
          		INNER JOIN creatures C
          			ON J.nom = C._owner
          SET J._pi = J._pi+1;

          Au passage, ce n'est pas terrible de stocker le nom dans la table créatures, il vaudrait mieux utiliser l'id du joueur ...

          -
          Edité par Benzouye il y a environ 11 heures


          Merci, pour ta solution et pour m'avoir fait découvrir une nouvelle façon d'utiliser mysql.

          Quel est le problème d'utiliser le nom plutôt que l'id ?

          • Partager sur Facebook
          • Partager sur Twitter
            13 novembre 2019 à 23:09:33

            Quel est la clé primaire de la table joueur ?

            • Partager sur Facebook
            • Partager sur Twitter
            Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
              17 novembre 2019 à 10:40:44

              Benzouye a écrit:

              Quel est la clé primaire de la table joueur ?


              C'est quoi une clé primaire :D
              • Partager sur Facebook
              • Partager sur Twitter
                17 novembre 2019 à 11:00:56

                Aïe...

                Donc la lecture du cours MySQL (cf. Ma signature) s'impose...

                • Partager sur Facebook
                • Partager sur Twitter
                Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL

                MYSQL UPDATE + WHERE + SELECT DISTINCT

                × 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