Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comprendre la jointure naturelle dans SQL

C'est trop long pour un commentaire. N'utilisez pas de jointures naturelles. Ne vous embêtez pas à apprendre les jointures naturelles. Ils sont une abomination.

Pourquoi? Les conditions de jointure sont basées sur des colonnes avec les mêmes noms . Les jointures naturelles ne prennent même pas en compte les relations de clé étrangère déclarées. Cela peut être assez dangereux. Ou -- dans mon cas -- parce que presque toutes mes tables ont CreatedAt et CreatedBy , ils sont inutiles de toute façon.

Au lieu de cela, listez le join clés. Dans votre cas (parce que vous avez select * ), le using clause est la plus appropriée :

SELECT * 
FROM R JOIN
     S
     USING (A, B);

Cela présente également l'avantage que les clés sont explicitement affichées dans la requête, ce qui réduit considérablement le risque d'erreurs.