Partage
  • Partager sur Facebook
  • Partager sur Twitter

Unir deux tables SQL

Sujet résolu
    18 mai 2022 à 12:28:47

    Bonjour à tous, alors voilà j'ai un petit soucis et je n'arrive pas à écrire ma requête en SQL...
    Pour faire simple j'ai une BDD avec 3 tables : utilisateurs, recettes et relation
    Cependant ici seulement les 2 dernières m'intéressent
    • Ma table recettes qui contient un id, nom, photo et informations
    • Ma table relation qui contient un id, l'idUser, l'idRecette et score
    L'idRecette est le même que l'id d'une recette et l'idUser est le même que l'id d'un utilisateur.
    Chaque fois qu'un utilisateur note une recette, une nouvelle ligne dans relation est créée.
    Je veux donc pouvoir obtenir un résultat qui contient toutes les recettes, mais également s'il existe une relation avec l'idUser de mon utilisateur, obtenir également le score présent dans relation
    ex résultat attendu :
    Ainsi je récupère toutes les informations de mes recettes avec le score de relation s'il existe, NULL si non.
    J'ai essayé plusieurs commandes notamment la plus proche de mon résultat :
    SELECT recettes.*, relation.score
    FROM recettes
    LEFT JOIN relation ON relation.idRecette = recettes.id
    WHERE relation.idUser = 3 OR relation.id IS NULL
    ORDER BY recettes.nom
    Cependant avec cette requête, si une recette a déjà été noté par un autre utilisateur, elle ne s'affiche pas (car relation.id n'est pas null)
    Merci d'avance pour toute aide même petite, je galère vraiment pour le coup ahah.
    • Partager sur Facebook
    • Partager sur Twitter
      18 mai 2022 à 15:24:52

      Bonjour,

      Une solution est de mettre la condition dans la jointure :

      SELECT RC.*, RL.score
      FROM
      	recettes RC
      		LEFT JOIN relation RL
      			ON RL.idRecette = RC.id
      			AND RL.idUser = 3
      ORDER BY RC.nom

      -
      Edité par Benzouye 18 mai 2022 à 15:25:09

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        18 mai 2022 à 15:54:19

        Merci beaucoup ! Je ne savais pas que c'était possible et je n'y avais pas pensé ! Merci !
        • Partager sur Facebook
        • Partager sur Twitter

        Unir deux tables SQL

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        • Editeur
        • Markdown