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 :

j'arrive pas à comprendre pourquoi !


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 94
    Points : 68
    Points
    68
    Par défaut j'arrive pas à comprendre pourquoi !
    bonsoir;
    soit la requête suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     select c1.codec,c1.niveau,c1.datec,c1. tarif
    from cours c1,cours c2
    where c1.tarif=c2.tarif
    and c2.codec="001"
    order by c1.date desc;
    qui peut m'explique a quoi ca sert la duplication du nom de la table dans la 2ème ligne ?? merci d'avance

  2. #2
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 574
    Points
    574
    Par défaut
    Apparemment a rien qu'a compliquer cette requête.
    Si vous êtes libre, choisissez le Logiciel Libre.

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    La requête permet de trouver tous les cours qui ont le même tarif que le codec 001.

  4. #4
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 574
    Points
    574
    Par défaut
    c'est kif-kif pareil avec ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT c1.codec,c1.niveau,c1.date,c1.tarif FROM cours c1 WHERE c1.codec="001" ORDER BY c1.date DESC;
    Si vous êtes libre, choisissez le Logiciel Libre.

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Absolument pas !
    Je reviens un peu plus tard avec des données.

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Avec ce jeu de données :
    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
    create table cours
    (
        codec     varchar(3)   not null,
        niveau    integer      not null,
        datec     date         not null,
        tarif     decimal(5,2) not null,
        constraint pk_cours
          primary key (codec)
    );
     
    insert into cours (codec, niveau, datec, tarif) values ('001', 1, current_date  , 5);
    insert into cours (codec, niveau, datec, tarif) values ('002', 1, current_date-1, 4);
    insert into cours (codec, niveau, datec, tarif) values ('003', 1, current_date-2, 5);
    insert into cours (codec, niveau, datec, tarif) values ('004', 1, current_date-3, 4);
    insert into cours (codec, niveau, datec, tarif) values ('005', 1, current_date-4, 5);
     
    commit;
    Votre requête mono table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      SELECT c1.codec, c1.niveau, c1.datec, c1.tarif
        FROM cours c1
       WHERE c1.codec = '001'
    ORDER BY c1.datec desc;
     
    CODEC NIVEAU                 DATEC                     TARIF                  
    ----- ---------------------- ------------------------- ---------------------- 
    001   1                      24/04/2011                5
    La requête avec les deux tables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      SELECT c1.codec, c1.niveau, c1.datec, c1.tarif
        FROM cours c1
             INNER JOIN cours c2
              ON c2.tarif = c1.tarif
       WHERE c2.codec = '001'
    ORDER BY c1.datec desc;
     
    CODEC NIVEAU                 DATEC                     TARIF                  
    ----- ---------------------- ------------------------- ---------------------- 
    001   1                      24/04/2011                5                      
    003   1                      22/04/2011                5                      
    005   1                      20/04/2011                5

  7. #7
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 452
    Points
    19 452
    Par défaut
    Bonjour.

    Citation Envoyé par TryExceptEnd Voir le message
    c'est kif-kif pareil avec ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT c1.codec,c1.niveau,c1.date,c1.tarif FROM cours c1 WHERE c1.codec="001" ORDER BY c1.date DESC;
    Attention, comme le montre Waldar, la jointure se fait sur les tarifs, pas sur les identifiants ... Ce serait certes inutile si la jointure se faisait sur les identifiants (codec dans le cas présents).

    Il aurait aussi été possible de faire cela par une sous-requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT *
        FROM cours
        WHERE tarif = (SELECT tarif
                         FROM cours
                         WHERE codec = '001')
        ORDER BY date DESC;
    Cordialement,
    Idriss

  8. #8
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 94
    Points : 68
    Points
    68
    Par défaut
    merci infiniment ,c'est très clair maintenant )

  9. #9
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 574
    Points
    574
    Par défaut
    Citation Envoyé par Waldar Voir le message
    La requête permet de trouver tous les cours qui ont le même tarif que le codec 001.
    Dont acte, désolé pour la lecture de travers.
    Si vous êtes libre, choisissez le Logiciel Libre.

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

Discussions similaires

  1. Erreur que j'arrive pas à comprendre
    Par badreddine540 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 18/08/2008, 15h07
  2. J'arrive pas à comprendre ce root
    Par peck dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 30/05/2008, 14h26
  3. Réponses: 0
    Dernier message: 02/10/2007, 11h02
  4. j'arrive pas à comprendre ce Message d'erreur
    Par casho dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 11/12/2006, 10h00

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