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 :

Combinaison de requêtes [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 248
    Points : 231
    Points
    231
    Par défaut Combinaison de requêtes
    Bonjour,

    Je souhaiterai récupérer des informations sur deux tables distinctes ayant une valeur en commun.

    J'ai essayé deux requêtes distinctes :
    Tentative 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $pre = "SELECT pro_etu_num, pro_etu_nom, pro_etu_prenom,
                pro_not_num, pro_not_j1, pro_not_j2,
                pro_not_j3, pro_not_j4, pro_not_j5, pro_not_not1, pro_not_not2,
                pro_not_not3 
        	    FROM prologue_etudiants, prologue_notes_abs
        	    WHERE prologue_etudiants.pro_etu_num = prologue_notes_abs.pro_not_num
        	    AND pro_etu_gp_tice = '".$this -> grp."' 
        	    ORDER BY pro_etu_nom ASC " ;
    Tentative 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $pre = "SELECT * FROM prologue_etudiants
                JOIN prologue_notes_abs
                ON prologue_etudiants.pro_etu_num = prologue_notes_abs.pro_not_num 
                WHERE pro_etu_gp_tice = '".$this -> grp."'
                ORDER BY pro_etu_nom ASC " ;
    Mon problème est que ces deux requêtes fonctionnent mais ne me renvoient pas ce que je souhaite. En effet, je n'ai que les données qui se trouvent dans les deux tables.

    Alors que je souhaiterai avoir les données de la table "prologue_etudiants" quoi qu'il arrive et récupérer celles de "prologue_notes_abs" si elles existent.

    Suis-je obligé de faire ma première requête et de faire une itération sur les résultats pour récupérer les valeurs de la seconde table ?

    J'utilise PDO donc je peux faire des requêtes préparées, pour accélerer le traitement, mais ce serait tellement bien d'avoir ce que je veux en une seule requête.

    Merci pour votre aide...

  2. #2
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Si tu veux tous les éléments de ta première table en jointure, il ne faut pas utiliser une jointure normale (ou interne) JOIN (INNER JOIN) mais une jointure externe (OUTER JOIN).

    Comme c'est de la première table (ou table de gauche à la jointure) que tu veux tous les éléments alors c'est LEFT OUTER JOIN.

    A mettre à la place de ton JOIN dans la requête qui a l'air correcte

    PS: j'aurais utilisé des alias vues les longeurs de tes tables ...
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 248
    Points : 231
    Points
    231
    Par défaut
    Effectivement, cela marche impeccable !!

    Je connaissais pas ce LEFT OUTER JOIN... bien pratique en tout cas, il faudrait que je me penche sur tout ça !

    En tout cas merci beaucoup !

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

Discussions similaires

  1. [AC-2007] Combinaison de requêtes
    Par ALEX80800 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 09/07/2011, 22h44
  2. [AC-2007] Combinaison requêtes analyse croisée/ajout
    Par Nadiine dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 20/04/2010, 09h44
  3. [Smarty] Optimisation, combinaison des requêtes JavaScript et CSS
    Par Sylvain__A_ dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 01/09/2009, 14h59
  4. Réponses: 9
    Dernier message: 25/02/2009, 00h11
  5. [Requête]recherche avec combinaisons de 3 choix pour X champs
    Par marco361020 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 18/04/2007, 11h34

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