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

Requêtes MySQL Discussion :

palier les requetes imbriquées


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué Avatar de dor_boucle
    Inscrit en
    Juin 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 147
    Points : 136
    Points
    136
    Par défaut palier les requetes imbriquées
    j'ai bien suivi les autres messages sur les jointures.
    mais là un simple left join avec l'id = null ne me suffit pas.

    comment fait-on quand on veut à la fois les champs qui ne se trouvent pas dans une 2e table et ceux qui s'y trouvent sous une certaine condition ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    TABLE_1 
    * id_t1 * champs_t1 * 
    * 1     * AA        * 
    * 2     * BB        * 
    * 3     * CC        * 
    * 4     * DD        * 
    * 5     * EE        * 
    ********************* 
     
    TABLE_2 
    *id_t2 * liaison_t1 * champs_t2 * 
    * 1    * 2          * NULL      * 
    * 2    * 3          * flo       * 
    * 3    * 4          * NULL      * 
    *********************************
    donc dans cet exemple je veux tout ce qui n'est pas dans la table 2 ET ceux qui y sont mais dont le champt_t2 est null...
    j'avoue j'ai du mal avec les jointures, quelqu'un pourrait m'aider ?
    merci d'avance...
    J'ai l'impression d'engager un combat sans précédent avec la nature. Je vais bien, le moral est bon, je poursuis le vol. (Youri Gagarine)

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Tu peux utiliser une "union" dans ce cas là, peut-être y-a-t'il une solution pour avoir les éléments dans une même requête, mais j'ai l'impression que ça serait plus compliqué et moins lisible ( et pas forcément plus performant )

    Voici la documentation associée.
    K

  3. #3
    Membre habitué Avatar de dor_boucle
    Inscrit en
    Juin 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 147
    Points : 136
    Points
    136
    Par défaut
    oh bah mince...
    je pensais que l'union etait une "variété" d'imbrication !
    ok merci beaucoup !
    J'ai l'impression d'engager un combat sans précédent avec la nature. Je vais bien, le moral est bon, je poursuis le vol. (Youri Gagarine)

  4. #4
    Membre habitué Avatar de dor_boucle
    Inscrit en
    Juin 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 147
    Points : 136
    Points
    136
    Par défaut
    toc toc toc, j'ai oublié une indication de taille : je suis sous un mysql 3.2xxxx ...
    l'union est bien une imbrication...
    il me faut absolument une même requete, car j'ai une pagination à faire, donc des limit à gérer...
    J'ai l'impression d'engager un combat sans précédent avec la nature. Je vais bien, le moral est bon, je poursuis le vol. (Youri Gagarine)

  5. #5
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    mysql 3.2 permet-il de faire des sous requêtes dans la clause WHERE ?

    Si oui, tu pourrais aussi faire quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT *
    FROM table_1
    WHERE 
       id_t1 IN ( ICI TA REQUETE 1 QUI RETOURNE UNE LISTE DE id_t1 )
    OR
       id_t1 IN ( ICI TA REQUETE 2 QUI RETOURNE UNE LISTE DE id_t1 )
    K

  6. #6
    Membre habitué Avatar de dor_boucle
    Inscrit en
    Juin 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 147
    Points : 136
    Points
    136
    Par défaut
    hihi non
    les sous_requetes = imbrications.
    J'ai l'impression d'engager un combat sans précédent avec la nature. Je vais bien, le moral est bon, je poursuis le vol. (Youri Gagarine)

  7. #7
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Salut,

    Essaie ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * FROM table_1 LEFT JOIN table_2
    ON id_t1 = liaison_t1 
    WHERE liaison_t1 IS NULL OR champs_t2 IS NULL
    ...
    Pensez au bouton

  8. #8
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    m**d* !

    désolé de ne pas pouvoir aider, il y a peut-être un moyen avec une requête mais j'ai toujours eu un peu de mal avec les jointures left etc, surtout vu que je m'embrouille avec tous les SGBDR que j'utilise ( je suppose que ton SGBDR ne supporte pas la notation (+) )..
    K

  9. #9
    Membre habitué Avatar de dor_boucle
    Inscrit en
    Juin 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 147
    Points : 136
    Points
    136
    Par défaut
    KiLVaiDeN, t'en fais pas c'est pas grâve


    Maximilian, merci, ca marche, cela me renvoie un nombre de résultats qui me semble correct.
    j'étudie ma liste si elle a l'air correcte, et je viens vous dire si le sujet est résolu ou pas. merci beaucoup, en tout cas.
    J'ai l'impression d'engager un combat sans précédent avec la nature. Je vais bien, le moral est bon, je poursuis le vol. (Youri Gagarine)

  10. #10
    Membre habitué Avatar de dor_boucle
    Inscrit en
    Juin 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 147
    Points : 136
    Points
    136
    Par défaut
    trop bien !
    merci beaucoup !
    j'ai étudié les left join au passage, histoire de pas polluer le forum une autre fois par mes ignorances !
    J'ai l'impression d'engager un combat sans précédent avec la nature. Je vais bien, le moral est bon, je poursuis le vol. (Youri Gagarine)

  11. #11
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Tu as un site qui en parle en lien ?
    K

  12. #12
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Pensez au bouton

  13. #13
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Merci, je sais pas pourquoi j'ai un blocage sur les "LEFT JOIN" ou autre OUTER etc... Je comprend pas pourquoi il y a autant de termes
    K

  14. #14
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Citation Envoyé par KiLVaiDeN
    Je comprend pas pourquoi il y a autant de termes
    Pour refléter les différents types de jointures décrits dans la théorie de l'algèbre relationnelle
    Pensez au bouton

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/09/2011, 11h17
  2. [AC-2007] Requete imbriquée : enlever les doublons + count
    Par Tinien dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 23/07/2009, 14h49
  3. Réponses: 2
    Dernier message: 08/01/2009, 10h12
  4. Réponses: 1
    Dernier message: 11/04/2007, 16h11
  5. Faire "remonter" les données dans des requetes imbriquées
    Par Earthwormjim dans le forum Requêtes
    Réponses: 5
    Dernier message: 30/08/2006, 17h37

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