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 :

Jointure : histoire de se détendre . . .


Sujet :

Langage SQL

  1. #1
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 113
    Points : 31 590
    Points
    31 590
    Billets dans le blog
    16
    Par défaut Jointure : histoire de se détendre . . .
    Amateurs et spécialistes des jointures, accrochez-vous. Savez-vous repérer les "inner columns" dans les tables ? Les "outer columns" ?

    Non ? Alors je vous suggère la lecture de cet article, en ce qui concerne la jointure : Database design for platform independence

    Les commentaires ne manquent pas d'humour... (il y en a d'autres...)


    A l'attention des novices : notez bien que l'auteur de l'article en question montre qu'il n'a aucune idée de ce qu'est une jointure, et sa prose est évidemment bonne pour la poubelle.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Il date de 2002 cet article mais c'est vrai que ce qu'on y lit est pour le moins surprenant :
    • Inner/Outer Join
      Inner Joins are joined on the inner columns of two tables. Outer Joins are joined on the outer columns of two tables.
    • Left/Right Join
      Left Joins are joined on the left columns of two tables. Right Joins are joined on the right columns of two tables.
    Et surtout :
    The important thing to remember about joins is to not use them if you want your application to work well with different database servers.
    Ne suivez surtout pas ce mauvais conseil de ne pas utiliser les jointures avec JOIN !
    Il ne se passe pas une semaine sans que je milite sur ce forum pour l'utilisation de JOIN !
    Les SGBDR ont évolué depuis 2002 et, sauf erreur de ma part, ils supportent tous la syntaxe normalisée des jointures avec l'opérateur JOIN.

  3. #3
    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
    Même en 2002 cet article est une catastrophe.

    Sur le second lien, j'aime bien cette analyse :
    I love the way that it's exactly the kind of thing you would make up, if you were 12 and had absolutely no idea how to answer a homework question.

  4. #4
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    C'est super drôle !

    Mais un peu dangereux, parce que les novices pourraient ne pas s'apercevoir que c'est un fake. Il faudrait une balise dans le titre de l'article "j'y connais rien et je ne raconte que des conneries".
    Ou encore "interdit au moins de 122 ans".

  5. #5
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 113
    Points : 31 590
    Points
    31 590
    Billets dans le blog
    16
    Par défaut
    D'accord pacmann, j'ai ajouté une remarque à l'attention des néophytes qui pourraient interpréter les choses au 1er degré.

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 902
    Points : 51 646
    Points
    51 646
    Billets dans le blog
    6
    Par défaut
    Il y avait une raison a cet article. Je ne veut pas la défendre, mais regardez le test de jointures externe que j'ai fait sur les anciennes jointures externes de SQL Server : http://blog.developpez.com/sqlpro/p5...-et-le-nouvea/
    Elles étaient mathématiquement fausses !

    En bref, avant la norme, chaque éditeur avait implémenté sa façon particulière de faire des jointures externe, d'où le conseil, totalement obsolète aujourd'hui "ne faite pas de jointures" auquel on doit rajouter la phrase "pour rester compatible entre différents SGBDR" !!!!

    A +

  7. #7
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 113
    Points : 31 590
    Points
    31 590
    Billets dans le blog
    16
    Par défaut
    Nous avions déjà évoqué le sujet de la jointure externe (Watch for outer join) :

    http://www.developpez.net/forums/d59...l/#post3538998

    Mais quand l'auteur de l'article écrit :
    « Left Joins are joined on the left columns of two tables. Right Joins are joined on the right columns of two tables »
    alors on peut de poser des questions quant à sa connaissance du sujet ou à tout le moins sa compétence pour exposer les problèmes...

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

Discussions similaires

  1. Jointure qui ne renvoie pas tous les enregistrements
    Par rayonx dans le forum Langage SQL
    Réponses: 12
    Dernier message: 19/07/2024, 09h33
  2. pb jointure texture
    Par dweis dans le forum DirectX
    Réponses: 2
    Dernier message: 24/06/2003, 13h33
  3. Jointures en SQL
    Par Guizz dans le forum Langage SQL
    Réponses: 10
    Dernier message: 04/06/2003, 12h21
  4. Réponses: 14
    Dernier message: 17/03/2003, 18h31
  5. Jointures INNER et jointures classiques ???
    Par UbiK dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/09/2002, 10h29

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