[MYSQL] Problème jointure champs vide

Résolu
riven -  
 riven -
Bonjour,

Je vous explique mon soucis :

Je fais une requete avec une jointure

table personne(id_pers,nom_pers,id_serv)
table service(id_serv,nom_serv)

Quand je selectionne toutes les personnes avec le nom du service :

SELECT * FROM personne p,service s WHERE s.id_serv=p.id_serv

La requete est executé correctement (pas d'erreur) mais aucun resultat.

Le problème étant le fait que une personne n'appartient pas forcement à un service !
Comment obtenir la liste complète des personnes ?

Merci

Cordialement.
Configuration: Windows XP
Firefox 2.0.0.11

4 réponses

  1. sandul Messages postés 4013 Statut Membre 723
     
    Salut,

    Tu as besoin de ce que l'on appelle un outer join. Doc dispo ici: http://dev.mysql.com/doc/refman/5.0/fr/join.html

    ++
    0
  2. nicos2101 Messages postés 986 Statut Membre 193
     
    bonjour, il faut mettre des crochet.
    0
    1. riven
       
      D'accord Nicos2101, mais je les mets où les crochets?
      0
  3. CapitainCo
     
    Bonjour,
    Tu fais une sous requete
    SELECT *
    FROM personne
    WHERE id_serv in (SELECT id_serv from service) mais tu risque d'avoir des doublons
    0
  4. riven
     
    Je me suis trompé j'avais des résultats : juste les personnes qui sont affecté à un service or il me les fallait toutes.

    Donc CapitainCo j'ai testé ta requete elle me donne le même resultat que celle que j'ai donné. (SELECT * FROM personne p,service s WHERE s.id_serv=p.id_serv )

    Merci Sandul j'ai lu la doc trafiqué un peu la requete et ca à marché voici la requete qui fonctionne pour ceux qui aurait le même problème.

    "SELECT * FROM personne
    LEFT JOIN service ON personne.id_serv=service.id_serv"

    Nicos2101 "bonjour, il faut mettre des crochet." << Euh oui je veux bien mais je les mets où ? J'attends ta réponse ça m'interresse tout de même.

    Merci en tout cas de m'avoir aidé !
    0