Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Entendendo a junção natural no SQL


Isso é muito longo para um comentário. Não use junções naturais. Não se preocupe em aprender junções naturais. Eles são uma abominação.

Por quê? As condições de junção são baseadas em colunas com os mesmos nomes . As junções naturais nem mesmo levam em consideração os relacionamentos de chave estrangeira declarados. Isso pode ser bastante perigoso. Ou - no meu caso - porque quase todas as minhas tabelas têm CreatedAt e CreatedBy , eles são inúteis de qualquer maneira.

Em vez disso, liste o join chaves. No seu caso (porque você tem select * ), o using cláusula é mais apropriada:
SELECT * 
FROM R JOIN
     S
     USING (A, B);

Isso também tem a vantagem de que as chaves são mostradas explicitamente na consulta, o que reduz bastante o escopo de erros.