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 :

JOIN et INNER JOIN


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 18
    Points : 17
    Points
    17
    Par défaut JOIN et INNER JOIN
    Bonjour à tous
    j'ai un souci avec une requête :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT nt.*
    FROM lignes nt
    JOIN
    (
     SELECT id_client, max(date) AS date_max
     FROM lignes  
     GROUP BY id_client
    ) sr ON nt.id_client = sr.id_client AND nt.date = sr.date_max
    where destination='france' order by $tri
    elle fonctionne, mais le problème est lié au TRI en fin de requete :
    lorsque je trie sur id_client, je souhaiterais trier sur le nom des clients, que j'ai dans la table clients.

    J'ai essayé d'ajouter cela comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INNER JOIN clients ON clients.id_client=nt.id_client  ORDER BY clients.nom
    mais bon... je n'y suis pas !

    Quelqu'un pourrait-il m'aider ?
    Merci d'avance !

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    C'est ce qu'il faut faire, mais les jointures sont à mettre avant le WHERE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      SELECT nt.*
        FROM lignes nt
             INNER JOIN
             (  SELECT id_client, max(date) AS date_max
                  FROM lignes  
              GROUP BY id_client) sr
               ON nt.id_client = sr.id_client
              AND nt.date      = sr.date_max
            INNER JOIN clients cl
              ON cl.id_client = nt.id_client 
       WHERE nt.destination = 'france'
    ORDER BY cl.nom asc

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Merci beaucoup ! c'est parfait je n'étais pas loin.
    Bonne journée

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

Discussions similaires

  1. Ordre des inner join, left outer join et autres
    Par Dendrite dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/09/2012, 11h47
  2. inner join and outer join sql oracle
    Par vetrip dans le forum Oracle
    Réponses: 2
    Dernier message: 21/04/2011, 12h49
  3. left join , right join et inner join ?
    Par amine003 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/12/2008, 17h25
  4. Mysql Inner join
    Par ..:: Atchoum ::.. dans le forum Requêtes
    Réponses: 3
    Dernier message: 25/10/2007, 12h21
  5. Inner Join & Select
    Par bakaneko dans le forum Langage SQL
    Réponses: 7
    Dernier message: 10/02/2004, 10h48

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