Jointure

Résolu
koala. Messages postés 294 Statut Membre -  
koala. Messages postés 294 Statut Membre -
Bonjour,

Je travail sous php/MySQL j'ai trois table
Table re (id 1, id 2 , id 3, id 4, id 5)
Table r (id4, champ r)
Table d (id5, champ d)

Je voudrais obtenir
id 1 | id 2 | id 3 | id 4 | champ r | id 5 | champ d
* | * | * | * | * | * | * |

Je voudrais que tout les lignes champs r soit présent dans le résultat de m'a requête, même si il n'y a pas de correspondance avec id 1, id 2 , id 3 et id 5.
J'ai essayé avec LEFT OUTER JOIN mais je n'arrive pas a ce que je veux .
Merci de m'aider

4 réponses

  1. M@dien Messages postés 439 Date d'inscription   Statut Membre Dernière intervention   74
     
    Bonjour,
    SELECT re.id1, re.id2, re.id3, r.id4, r.r, re.id5, d.d
    FROM r
    LEFT JOIN re ON r.id4 = re.id4
    LEFT JOIN d ON re.id5 = d.id5

    Est-ce que cette requête ne fonctionnerait pas par hasard?
    0
  2. koala. Messages postés 294 Statut Membre 38
     
    Effectivement, si on fait que ca marche. Maintement que j'ai compris ou ce site le problème car dans ma requête j'ai ajouter un where id1=3 ans id2=4 voilà pourquoi cela ne marcher pas donc autre problème je voudrai que les champs NULL apparaisse

    J'ai essayé la requête suivant mais elle n'a pas fonctionner :

    SELECT re.id1, re.id2, re.id3, r.id4, r.r, re.id5, d.d
    FROM r
    LEFT JOIN re ON r.id4 = re.id4
    LEFT JOIN d ON re.id5 = d.id5
    WHERE re.id1 =6 OR re.id1 = 'NULL'
    AND re.id2 =6 OR re.id2 = 'NULL'

    Merci
    0
  3. M@dien Messages postés 439 Date d'inscription   Statut Membre Dernière intervention   74
     
    Hum.

    peut-être que cette requête résoudra le problème:
    SELECT re.id1, re.id2, re.id3, r.id4, r.r, re.id5, d.d
    FROM r
    LEFT JOIN re 
        ON (r.id4 = re.id4 AND re.id1 =6 AND re.id2 =6)
    LEFT JOIN d ON re.id5 = d.id5
    0
  4. koala. Messages postés 294 Statut Membre 38
     
    Merci, cela fonctionne il va falloir que je bosse un peu sur les types jointures SQL.
    0