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 :

imbriquer 2 requetes ? [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 68
    Par défaut imbriquer 2 requetes ?
    Je voudrais imbriquer 2 requêtes, c'est-à-dire utiliser le résultat d'un 1ère requête à l'intérieur d'une 2ème. Mais je ne sais pas si c'est possible.
    J'ai essayé ceci qui ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT name FROM parent WHERE id = (SELECT parent_id FROM child WHERE name = toto)
    (=récupérer le nom du parent du child qui a comme name toto)

  2. #2
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    si l'opérateur égal ne fonctionne pas utilise l'operateur IN.

  3. #3
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    autre chose.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT p.name 
    FROM p.parent as p , child as c 
    WHERE p.id = c.parent_id AND c.name = :toto
    moins bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT p.name 
    FROM p.parent as p , child as c 
    WHERE p.id = c.parent_id AND c.name = "toto"
    edit: pour les puristes avec LEFT ou INNER celon comment on traite les parents qui n'ont pas d'enfants.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT p.name 
    FROM p.parent as p LEFT JOIN child as c ON p.id = c.parent_id
    WHERE c.name = "toto"

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 68
    Par défaut
    Le IN me donnait la meme erreur : Cardinality violation: 1241 Operand should contain 1 column(s)

    Ceci ne marchait pas non plus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT (p.name, p.id) 
    FROM parent as p , child as c 
    WHERE p.id = c.parent_id AND c.name = :toto
    Par contre ceci fonctionne !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT p.name, p.id 
    FROM parent as p , child as c 
    WHERE p.id = c.parent_id AND c.name = :toto
    On dirait qu'il n'aime pas les parenthèses.
    Merci !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/01/2009, 10h12
  2. requetes imbriquées sans requetes imbriquées
    Par Lenaick dans le forum Langage SQL
    Réponses: 4
    Dernier message: 24/11/2008, 16h09
  3. Réponses: 8
    Dernier message: 11/03/2008, 21h03
  4. Imbriquer deux requetes
    Par PIEPLU dans le forum Requêtes
    Réponses: 1
    Dernier message: 15/09/2007, 21h56
  5. Réponses: 2
    Dernier message: 11/01/2006, 15h49

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