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 :

Comment faire une requete liée avec une requete ?


Sujet :

Requêtes MySQL

  1. #1
    Membre averti Avatar de DavidDeTroyes
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 305
    Points : 348
    Points
    348
    Par défaut Comment faire une requete liée avec une requete ?
    Bonjour,

    Je vais essayé d'etre clair (mais ca va pas etre facile)

    Chapitre 1

    J'ai une table T1 avec un champ Numero (un numerique), genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Numero
    1
    2
    3
    4
    5
    et une table T2 avec un champ Numero (un numerique), un champ Valeur (un byte) et un champ Qui (un char de 6), genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Numero Qui   Valeur
    1      David    1
    2      David    0
    Chapitre 2

    j'aimerai lister tous les Numero different de ma table T1... Pour ca pas de problème, je fait un GROUP BY. Je veux aussi voir tous les Valeur de T2 en liant les champ Numero des 2 tables, genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT T1.Numero, T2.Valeur, T2.Qui FROM T2 RIGHT JOIN T1 ON T2.Numero = T1.Numero GROUP BY T1.Numero, T2.Valeur, T2.Qui WHERE T2.Qui = 'David'
    Ca, c'est cool, ca me liste tous les Qui qui valent 'David' present dans T2 avec leur Valeur, genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Numero Valeur Qui
    1     1      David
    2     0      David
    Chapitre 3

    Mais moi je voulais avoir TOUS mes T1.Numero, T2.Qui et T2.Valeur, et qu'il me remplisse les lignes où Qui = 'David' et laisse les autres vide, genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Numero Qui     Valeur
    1     David   1
    2     David   0
    3
    4
    5
    Chapitre final

    Et j'ai reussi en Acces, en faisant une première requete qui me sort les 2 lignes du chapitre 2 et en la lient avec une requete...

    Et donc ma question est : Est ce possible avec MySQL ???

    Je programme en ASP sur du MySQL... Je sais, mais j'ai pas l'choix... vous savez, l'patron toussa...

    Merci pour vos futures réponses et n'hesiter pas à m'engueuler si j'ai dit n'importe quoi, si je suis pas assez clair ou si je post pas au bon endroit !
    "Les cons ca ose tout, c'est même à ca qu'on les reconnait" M. AUDIARD
    "L'intelligence, on croit toujours en avoir assez, vu que c'est avec ça qu'on juge" COLUCHE

    Spidercochon ! Spidercochon !
    Il peut marcher au plafond.
    Est-ce qu'il peut tisser une toile ?
    Bien sûr que non c'est un cochon
    Prends garde Spidercochon est là...

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    essaie ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT T1.Numero, T2.Valeur, T2.Qui FROM T2 RIGHT OUTER JOIN T1 ON T2.Numero = T1.Numero GROUP BY T1.Numero, T2.Valeur, T2.Qui WHERE T2.Qui = 'David'

  3. #3
    Membre averti Avatar de DavidDeTroyes
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 305
    Points : 348
    Points
    348
    Par défaut
    Merci de ta réponse

    J'ai essayé mais ca me ressort 2 lignes (donc pas les 5 lignes desirées). A quoi sert exactemment la commande OUTER (en attendant ta réponse, google est aussi mon ami) ?
    "Les cons ca ose tout, c'est même à ca qu'on les reconnait" M. AUDIARD
    "L'intelligence, on croit toujours en avoir assez, vu que c'est avec ça qu'on juge" COLUCHE

    Spidercochon ! Spidercochon !
    Il peut marcher au plafond.
    Est-ce qu'il peut tisser une toile ?
    Bien sûr que non c'est un cochon
    Prends garde Spidercochon est là...

  4. #4
    Membre averti Avatar de DavidDeTroyes
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 305
    Points : 348
    Points
    348
    Par défaut
    Je peux, peut être, poser ma question différemment :

    J'ai, sous Access, la possibilité de faire un requete (que je nomme R1) sur une table T1 :

    Numero Valeur1 Valeur2
    1 10 100
    2 20 200
    3 10 200
    4 20 200
    5 20 100

    R1 : SELECT * FROM T1 WHERE Valeur1 = 10

    il me ressort une table de 3 colonnes (Numero, Valeur1 et Valeur2) et 2 lignes :

    Numero Valeur1 Valeur2
    1 10 100
    3 10 200

    et une autre requete :

    SELECT * FROM R1 WHERE Valeur2 = 100

    ce qui me sort une table de 3 colonnes et 1 ligne

    Comment le faire sous MySQL en SQL ?

    Merci encore
    "Les cons ca ose tout, c'est même à ca qu'on les reconnait" M. AUDIARD
    "L'intelligence, on croit toujours en avoir assez, vu que c'est avec ça qu'on juge" COLUCHE

    Spidercochon ! Spidercochon !
    Il peut marcher au plafond.
    Est-ce qu'il peut tisser une toile ?
    Bien sûr que non c'est un cochon
    Prends garde Spidercochon est là...

  5. #5
    Membre averti Avatar de DavidDeTroyes
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 305
    Points : 348
    Points
    348
    Par défaut
    UP !
    "Les cons ca ose tout, c'est même à ca qu'on les reconnait" M. AUDIARD
    "L'intelligence, on croit toujours en avoir assez, vu que c'est avec ça qu'on juge" COLUCHE

    Spidercochon ! Spidercochon !
    Il peut marcher au plafond.
    Est-ce qu'il peut tisser une toile ?
    Bien sûr que non c'est un cochon
    Prends garde Spidercochon est là...

Discussions similaires

  1. Réponses: 5
    Dernier message: 20/07/2010, 12h11
  2. Réponses: 8
    Dernier message: 22/06/2009, 18h06
  3. probleme requete liée a une liste deroulante d'une table
    Par freenight dans le forum Modélisation
    Réponses: 5
    Dernier message: 07/04/2009, 16h57
  4. Réponses: 7
    Dernier message: 14/12/2007, 09h02

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