Requete MYSQL problématique

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par ludoanimation, 31 Octobre 2010.

  1. ludoanimation
    ludoanimation WRInaute impliqué
    Inscrit:
    25 Juillet 2003
    Messages:
    677
    J'aime reçus:
    0
    Salut,

    Je me prend la tete deuis un petit bout de temps avec une requete mysql

    j'ai 2 tables :

    la premiere :

    Code:
    id     lib 
    --     -------
    1      aaaaa
    2      bbbbb
    3      ccccc
    
    la 2 eme

    Code:
    user   val1   val2 val3  id1eretable
    ----    ----    ----  ----   -------------
    
    111    100    50    0     1 
    111    0       0    10    2
    222    20    20     20    1 
    
    je voudrait avoir en resultat pour le user 111

    Code:
    1  aaaaa  100   50  0 
    2  bbbbb  0      0    10 
    3  ccccc   nul  nul   nul 
    
    j'ai essayé avec la requete suivante :

    Code:
    select d.id as id, d.lib as lib, b.val1 as val1, b.val2 as val2, b.val3 as val3  
    from table1 as d left join table2 as b  on d.id = b.id 
    where (b.user='111') 
    
    mais ca ne marche pas, ca ne me renvoie pas la ligne 3 ccccc nul nul nul

    une idée ?
     
  2. Julia41
    Julia41 WRInaute passionné
    Inscrit:
    31 Août 2007
    Messages:
    1 774
    J'aime reçus:
    0
    [/code]SELECT table1.id, table1.lib, table2.val1, table2.val2, table2.val3 FROM table1 LEFT JOIN table2 ON table1.id = table2.id1eretable WHERE table2.user = 111;[/code]
    A noter que dans ton exemple, le dernier code, ton LEFT JOIN table2 AS b ON d.id = b.id, le b.id n'existe pas dans ton exemple, alors pas sûr que tu n'ais pas fait une faute de frappe :p
    Sinon, ta requête me semble correcte.

    NB: pour bien différencier opérateur, il faut mettre en majuscule tout ce qui est MySQL propre (SELECT / FROM / WHERE / ON / AS / LEFT JOIN ...) ça permet de lire le tout plus vite :p
     
  3. ludoanimation
    ludoanimation WRInaute impliqué
    Inscrit:
    25 Juillet 2003
    Messages:
    677
    J'aime reçus:
    0
    Merci,

    Comme c'est un exemple, je me suis un peu emmelé les crayons, je remet la requete au propre :

    Code:
    SELECT d.id as id, d.lib as lib, b.val1 as val1, b.val2 as val2, b.val3 as val3 
    FROM table1 as d LEFT JOIN table2 as b  ON d.id = b.id1eretable
    WHERE (b.user='111') 
    
    mais elle ne me remonte que 2 lignes et toujours pas la 3eme

    Code:
    3  ccccc   nul  nul   nul 
     
  4. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    C'est parce que ton LEFT JOIN est "à l'envers". LEFT JOIN renvoie toutes les lignes de la première table (qui correspondent aux critères du WHERE), avec en face les lignes de la deuxième table qui vont avec. Là, tu veux toutes les lignes de ta deuxième table, avec éventuellement les données de la première s'il y en a. Il faut donc que tu fasses un table2 left join table1, ou un table1 right join table2 (je conseille plutôt le premier, c'est plus "intuitif", surtout si tu as beaucoup de jointures).

    Jacques.
     
  5. ludoanimation
    ludoanimation WRInaute impliqué
    Inscrit:
    25 Juillet 2003
    Messages:
    677
    J'aime reçus:
    0
    Non, c'est bien tous les champs de la 1ere complété des valeurs trouvées dans la 2eme ou NULL.


    Ca y est j'ai trouvé , en fait il faut que j'inclue ma clause dans le 0N et non dans le WHERE ce qui donne :
    Code:
    SELECT d.id as id, d.lib as lib, b.val1 as val1, b.val2 as val2, b.val3 as val3
    FROM table1 as d LEFT JOIN table2 as b  ON ( d.id = b.id1eretable AND b.user='111' )
    
    et la ca marche :D (comme quoi la persévérence paye :wink: )
     
Chargement...
Similar Threads - Requete MYSQL problématique Forum Date
encodage texte sur requete mysql Demandes d'avis et de conseils sur vos sites 21 Octobre 2020
Requête MySql imbriquée Développement d'un site Web ou d'une appli mobile 8 Octobre 2020
Requête Mysql avec des string Développement d'un site Web ou d'une appli mobile 6 Février 2018
Requete mysql Développement d'un site Web ou d'une appli mobile 30 Mai 2017
Problème requête mysql Développement d'un site Web ou d'une appli mobile 1 Mars 2017
[php/mysql] Eviter de faire 20 requêtes pour un affichage Développement d'un site Web ou d'une appli mobile 19 Janvier 2016
requete Mysql et classement des résultats Administration d'un site Web 1 Novembre 2015
Mysql requête imbriquée Développement d'un site Web ou d'une appli mobile 1 Octobre 2015
[MySQL] Requête SELECT et INSERT entre 3 tables liées+Aide Développement d'un site Web ou d'une appli mobile 30 Avril 2014
Question pour une requête MYSQL Développement d'un site Web ou d'une appli mobile 29 Mai 2013
Réunir 2 requêtes MySql Développement d'un site Web ou d'une appli mobile 22 Mai 2013
MySQL Help requête² Développement d'un site Web ou d'une appli mobile 12 Avril 2013
MySQL help requete Développement d'un site Web ou d'une appli mobile 6 Mars 2013
Une requête mysql count Développement d'un site Web ou d'une appli mobile 25 Juillet 2012
Requête mysql Développement d'un site Web ou d'une appli mobile 11 Mai 2012
[MySQL] sélectionner la dernière note pour chaque élève en une seule requète ? Développement d'un site Web ou d'une appli mobile 12 Avril 2012
[Mysql] Requête PDO avec variable php Développement d'un site Web ou d'une appli mobile 16 Février 2012
[Mysql] Requête PDO aléatoire Développement d'un site Web ou d'une appli mobile 7 Février 2012
Temps d'éxécution requête mysql vraiment contre intuitif Développement d'un site Web ou d'une appli mobile 9 Novembre 2011
Requête MySQL besoin d'aide Développement d'un site Web ou d'une appli mobile 15 Septembre 2011