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

Langage SQL Discussion :

Tri sur deux tables


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Février 2008
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 123
    Points : 58
    Points
    58
    Par défaut Tri sur deux tables
    Bonjour tout le monde ! je vous explique le problème sur lequel je me tire les cheveux depuis 20 minutes n'étant pas un expert SQL:

    J'ai deux tables A et B

    Dans la table A il y a trois champs:
    PrimaryKey, IdB, Order

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    1      1054      2
    1      1055      3
    1      1056      1
    Dans la table B, il y a deux champs
    PrimaryKey, ValeurX

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    1054      aaa
    1055      bbb
    1056      ccc
    Je voudrais dans un premier temps faire une requête sur A, récupérer tous les IdB qui sont 1054, 1055 et 1066, récupérer leur ordre (donc ici respectivement 2-3-1) et en fonction de cela, faire un
    Select * sur B WHERE PrimaryKey in (1054, 1056) et trier les trois records en fonction de l'ordre récupéré dans A.

    Je dois donc récupérer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    1056      ccc //Order = 1 dans A
    1054      aaa //Order = 2 dans A
    1055      bbb //Order = 3 dans A
    Quelqu'un aurait une idée ?

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 778
    Points
    30 778
    Par défaut
    Avec une jointure peut-être ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT  b.primarykey
        ,   b.valeurx
    FROM    b
        INNER JOIN
            a
            ON  b.primarykey = a.idb
    ORDER BY a.order
    J'ose espérer que les noms réels de tes tables et colonnes sont différents de ceux que tu nous donnes...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre du Club
    Inscrit en
    Février 2008
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 123
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par al1_24 Voir le message
    Avec une jointure peut-être ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT  b.primarykey
        ,   b.valeurx
    FROM    b
        INNER JOIN
            a
            ON  b.primarykey = a.idb
    ORDER BY a.order
    J'ose espérer que les noms réels de tes tables et colonnes sont différents de ceux que tu nous donnes...
    Fabuleux, ça fonctionne, j'imagine que c'est une base de SQL mais encore une fois, je connais pas des masses le langage.
    Pour les noms de table, c'est autre chose bien sûr

    Merci beaucoup !

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 778
    Points
    30 778
    Par défaut
    Citation Envoyé par GriffinK Voir le message
    Fabuleux, ça fonctionne, j'imagine que c'est une base de SQL mais encore une fois, je connais pas des masses le langage.
    N'hésitez pas à consulter les cours SQL
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

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

Discussions similaires

  1. Tri sur deux tables
    Par Jefty dans le forum Langage SQL
    Réponses: 4
    Dernier message: 29/03/2013, 12h57
  2. Sélection et tri sur deux tables
    Par comode dans le forum Langage SQL
    Réponses: 6
    Dernier message: 19/10/2012, 20h23
  3. [1.x] Stratégie de tri sur deux tables
    Par Fused dans le forum Symfony
    Réponses: 4
    Dernier message: 10/02/2011, 10h32
  4. Requete sur deux tables avec tri
    Par ebaoo dans le forum MySQL
    Réponses: 2
    Dernier message: 25/02/2010, 19h41
  5. 2 Count() sur deux tables en jointures gauches
    Par Alexandre T dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/09/2003, 17h53

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