JOINTURE INTERNE SUR vs clause where

Pour des raisons de simplicité, supposons que tous les champs sont NOT NULL.

Que vous pouvez faire:

SELECT
    table1.this, table2.that, table2.somethingelse
FROM
    table1, table2
WHERE
    table1.foreignkey = table2.primarykey
    AND (some other conditions)

Ou encore:

SELECT
    table1.this, table2.that, table2.somethingelse
FROM
    table1 INNER JOIN table2
    ON table1.foreignkey = table2.primarykey
WHERE
    (some other conditions)

Ces deux fonctionnent sur le même chemin, en MySQL?

  • c'est ici
  • double possible de SQL left join vs plusieurs tables à PARTIR de la ligne?
  • Si j'ai bien compris, la première variante est la norme ANSI SQL-89 implicite de la syntaxe et de la deuxième variante est la norme ANSI SQL-92 explicite de la syntaxe de jointure. Les deux aboutissent au même résultat en se conformant SQL de mise en œuvre et à la fois résultat sera le même plan de requête dans bien fait implémentations de SQL. Personnellement, je préfère SQL-89 syntaxe mais beaucoup de gens préfèrent la syntaxe SQL-92.
  • Ce n'est pas un commentaire, il est une réponse. Cette question a 14 réponses, dont 3 avec plus de 50 points. Quel est votre commentaire à ajouter? Il me semble que c'est un troll sur SQL-89 vs SQL-92
  • J'étais en soulignant les noms officiels des syntaxes différentes. Aucune réponse dit explicitement le nom au complet, j'ai donc décidé d'ajouter ces commentaires. Cependant, mon commentaire n'a pas répondu à la question réelle, donc j'ai ajouté comme commentaire, non pas comme une réponse. (Haute voté réponses des allégations telles que "INNER JOIN est syntaxe ANSI" et "jointure implicite syntaxe ANSI est plus vieux" qui ne dit rien du tout parce que les deux syntaxes différentes ANSI syntaxes.)
InformationsquelleAutor JCCyC | 2009-06-19