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 :

SELECT imbriqué et jointure [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 72
    Par défaut SELECT imbriqué et jointure
    Bonjour,
    Comment feriez-vous pour récupérer des champs de la table 'Porter'

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Pays_Nom
    FROM Pays LEFT JOIN Porter ON Pays.Pays_Code = Porter.Pays_code AND Porter.CRM_No=1
    WHERE Porter.Pays_Code is null;

    Merci

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    Comme ça :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT 
         Pays_Nom, Porter.*
    FROM 
         Pays LEFT JOIN Porter ON Pays.Pays_Code = Porter.Pays_code AND Porter.CRM_No = 1
    WHERE 
         Porter.Pays_Code IS NULL;

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2013
    Messages : 3
    Par défaut
    Ou comme ça:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT 
         *
    FROM 
         Pays, Porter 
    WHERE 
         Pays.Pays_Code = Porter.Pays_code AND 
         Porter.Pays_Code IS NULL AND 
         Porter.CRM_No = 1;

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    @janmaruku
    sûrement pas, on ne fait pas de jointures de tables dans la clause WHERE qui ne doit servir qu'au filtrage des données et à rien d'autre.
    Les jointures ne doivent être faites que dans la clause FROM prévue pour cela.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Ça m'intéresse car Je les fais moi même quasiment tout le temps dans le where, cela change quoi concrètement en terme de traitement ?

  6. #6
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 72
    Par défaut
    Merci pour ces réponses.
    Je me suis donc inspiré des lignes ci-dessus pour écrire ça.
    Le problème est que ça me retourne des données fausses.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $query = mysql_query("SELECT lib_dga, dga, DGAA, sum(m.NB_TOT) as NB_TOT
    FROM structure as s LEFT JOIN m41000 as m ON s.dga = m.DGAA
    WHERE m.CCIBLE=0 and m.DRR='41270' and m.LIBELLE_ACTION='action1' GROUP BY s.dga, m.DGAA") or die (mysql_error());
    while($array = mysql_fetch_assoc($query))
    {	
    print $array['lib_dga'];echo "<br>";
    print $array['NB_TOT'];echo "<br>";
    }
    Les résultats de NB_TOT sont multipliés par 8.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [INSERT][SELECT] insert avec un select imbriqué
    Par narmataru dans le forum SQL
    Réponses: 11
    Dernier message: 06/03/2013, 03h04
  2. Jointure, index et select imbriqué
    Par Knonix dans le forum SQL
    Réponses: 8
    Dernier message: 03/07/2008, 18h25
  3. SELECT imbriqué ou jointure reflexive
    Par JauB dans le forum DB2
    Réponses: 8
    Dernier message: 31/01/2007, 18h57
  4. Requetes imbriquées et jointures
    Par Emile Le Tueur* dans le forum Requêtes
    Réponses: 4
    Dernier message: 31/03/2004, 23h12
  5. SYBASE SELECT imbriqué clause FROM
    Par Nicolas Martel dans le forum Sybase
    Réponses: 2
    Dernier message: 19/11/2003, 15h28

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