[MYSQL] Problème jointure champs vide

Résolu
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. 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
    1. bonjour, il faut mettre des crochet.
      0
      1. D'accord Nicos2101, mais je les mets où les crochets?
        0
    2. 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
      1. 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