Partage
  • Partager sur Facebook
  • Partager sur Twitter

Double left join sur la même table

Sujet résolu
    6 juin 2020 à 2:04:45

    Bonsoir, j'ai un petit problème avec une requête sql je n'arrive pas à obtenir le résultat souhaité :

    SELECT COUNT(fraud.class), COUNT(auth.class)
    FROM vehicle_users vu
        LEFT JOIN (
          SELECT class
          FROM vehicles_request
            WHERE fraudulent = 0
        ) fraud ON fraud.class = vu.class
        LEFT JOIN (
          SELECT class
          FROM vehicles_request
            WHERE fraudulent = 1
        ) auth ON auth.class = vu.class
    WHERE vu.id_client = 51

    Je cherche à compter le nombre de champs possédant ou non la valeur fraudulent dans à partir d'une liste de classes provenant d'une autre table.

    Quand je met qu'un seul LEFT JOIN la requête renvoie le bon nombre d'entrées mais quand j'en met deux les deux me renvoie la même valeur quand je fais l'affichage des données obtenus en enlevant le COUNT j'obtient 6 rows toutes remplies alors que lors de test que j'avais fait j'obtenais NULL en parallèle à la colonne fraud ou auth ce qui est ce que je recherche

    -
    Edité par _JAWS™ 6 juin 2020 à 2:04:59

    • Partager sur Facebook
    • Partager sur Twitter
      6 juin 2020 à 17:10:56

      Bonjour,

      Le plus simple reste de faire deux requêtes séparées...

      Ce sera plus propre et plus efficace.

      Sinon tu peux faire COUNT( DISTINCT ... )

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

      Double left join sur la même table

      × 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