IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] Problème de SELECT


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 1
    Par défaut [SQL] Problème de SELECT
    Bonjour,

    Voici mon problème :
    Dans ma BDD il y a 4 tables
    Fournisseur
    id_fnr(PK)
    nom
    pays

    Intervention
    id_interv(PK)
    id_fnr(FK)
    type_intervention


    cp2
    id_cp2(PK)
    id_fnr(FK)
    id_domaine(FK)

    domaine
    id_domaine(PK)

    user
    id_user(PK)
    id_cp2(FK)
    username



    Disons que je fais un :
    SELECT f.nom, i.type_intervention, u.username
    FROM Fournisseur f, Intervention i, cp2 c, domaine d,user u
    WHERE f.id_fnr=i.id_fnr
    AND f.id_fnr=c.id_fnr
    AND c.id_cp2=u.id_cp2

    ce qui me donne (SI JAI BIEN REMPLI TOUTES LES TABLES):

    nom type_intervention username
    ELCAN ASYS Poquito Y.

    Par contre, là où mon problème se pose c'est le cas où je ne rempli pas toutes les tables.
    Si je ne remplis pas cp2 (et donc user de même) ma requete SELECT ne renvoi aucun résultat.
    Ma question est donc comment faire pour que la requete selectionne tout même si je n'ai pas rempli toutes les tables.
    Cela pourrait donner :
    nom type_intervention username
    ELCAN ASYS

  2. #2
    Membre chevronné
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 288
    Par défaut
    Il faut que tu regardes du coté des jointures plus complexes (à savoir LEFT OUTER JOIN par exemple)

    De cette manière tu peux remonter des lignes meme sans corespondance :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT f.nom, i.type_intervention, u.username
    FROM Fournisseur f, domaine d  
    LEFT OUTER JOIN Intervention i ON f.id_fnr=i.id_fnr
    LEFT OUTER JOIN cp2 c ON f.id_fnr=c.id_fnr
    LEFT OUTER JOIN user u ON c.id_cp2=u.id_cp2
    Edit : Un lien vers un site qui présente visuellement (c'est bien pratique) les types de jointures que tu peux réaliser entre 2 tables : LIEN

Discussions similaires

  1. SQL Problème requête SELECT
    Par Seth_75 dans le forum Développement
    Réponses: 2
    Dernier message: 30/03/2009, 15h02
  2. [SQL] problème de selection avec la fonction in();
    Par karimphp dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/10/2007, 00h12
  3. [SQL] Problème avec SELECT COUNT(*)
    Par jpascal dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/11/2006, 12h37
  4. [SQL] Problème requête SELECT
    Par dolf13 dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 04/07/2006, 23h54
  5. [PL/SQL] problème SELECT INTO
    Par nako dans le forum Oracle
    Réponses: 3
    Dernier message: 27/12/2005, 13h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo