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 :

Utilisation d'une jointure


Sujet :

Langage SQL

  1. #1
    Débutant
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Points : 704
    Points
    704
    Par défaut Utilisation d'une jointure
    Bonjour.

    Voici les 2 tables :

    poste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    id nom id_groupe
    1 toto  1
    2 tata  2
    3 titi  1
    4 tete 2

    groupe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    1 group1
    2 group2
    3 group3
    Le problème est que si je fais une jointure normal qui compte le nombre de poste par groupe, le group3 ne sortira pas.

    je crois qu'il faut utilisé LEFT OUTER JOIN mais j'ai du mal à l'utilisé...

    PS : Le résultat que j'aimerai avoir est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    nom groupe  |  nb post
    group1      |   2
    group2      |   2
    Merci
    Évènements dans le 06?
    www.sortir06.com

  2. #2
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Points : 11
    Points
    11
    Par défaut jointure naturel
    c est quoi le nbr de poste??? mais si j ai bien compris votre probleme tu teste ca comme je le fait avec succes:

    note que le groupe3 n a pas d enregistrement dans la table poste c est pourquoi n est pas dans le resultat de la requete

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     
    create table poste(id int, nom varchar(30), id_groupe int)
     
    insert into poste(id, nom, id_groupe) values (1,'toto',1)
    insert into poste(id, nom, id_groupe) values (2,'tata',2)
    insert into poste(id, nom, id_groupe) values (3,'titi',1)
    insert into poste(id, nom, id_groupe) values (4,'tete',2)
     
     
     
    create table groupe(id_groupe int, nomgroupe varchar(10))
     
    insert into groupe(id_groupe, nomgroupe) values (1,'groupe1')
    insert into groupe(id_groupe, nomgroupe) values (2,'groupe2')
    insert into groupe(id_groupe, nomgroupe) values (3,'groupe3')
     
     
     
    select count(poste.id_groupe) as [nb poste],groupe.nomgroupe
    from poste
     
     join groupe on poste.id_groupe=groupe.id_groupe
     
    group by  groupe.id_groupe, groupe.nomgroupe
    amicalement : la prochaine fois ne pose pas la question de la date car notre moderateur sqlpro sera facher. il a vraiment des articles bien detailles sur ce sujet sur le meme endroit.
    meilleurs salutation.

  3. #3
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Le problème est que si je fais une jointure normal qui compte le nombre de poste par groupe, le group3 ne sortira pas.
    Pas si vous inversez le JOIN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT count(poste.id_groupe) AS [nb poste],groupe.nomgroupe
    FROM poste
     
     RIGHT OUTER JOIN groupe ON poste.id_groupe=groupe.id_groupe
     
    GROUP BY  groupe.id_groupe, groupe.nomgroupe
    Résultat:
    2 groupe1
    2 groupe2
    0 groupe3
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  4. #4
    Débutant
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Points : 704
    Points
    704
    Par défaut
    Citation Envoyé par mustapha520 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select count(poste.id_groupe) as [nb poste],groupe.nomgroupe
    from poste
     
     join groupe on poste.id_groupe=groupe.id_groupe
     
    group by  groupe.id_groupe, groupe.nomgroupe
    Pas bon...
    Le group3 ne ressort pas..


    Citation Envoyé par Chtulus Voir le message
    Bonjour,


    Pas si vous inversez le JOIN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT count(poste.id_groupe) AS [nb poste],groupe.nomgroupe
    FROM poste
     
     RIGHT OUTER JOIN groupe ON poste.id_groupe=groupe.id_groupe
     
    GROUP BY  groupe.id_groupe, groupe.nomgroupe
    Résultat:


    OK super merci à toi
    Évènements dans le 06?
    www.sortir06.com

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

Discussions similaires

  1. [11g] Utilisation d'une jointure dans un Query de PARFILE
    Par samote49 dans le forum Import/Export
    Réponses: 0
    Dernier message: 09/04/2014, 15h08
  2. Pb avec l'utilisation d'une table de jointure
    Par cissou06 dans le forum Ruby on Rails
    Réponses: 19
    Dernier message: 14/03/2008, 11h40
  3. [BO 6.5] Utilisation d'une table sans jointure ?
    Par NKC78 dans le forum Deski
    Réponses: 7
    Dernier message: 22/11/2007, 11h38
  4. Utilisation de la fonction TOP avec une jointure
    Par pc75 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 06/07/2007, 08h11
  5. Utiliser un tableau de résultat pour faire une jointure
    Par Xavier1979 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 13/06/2007, 13h27

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