sql >> Database >  >> RDS >> Mysql

Natural Join in SQL begrijpen

Dit is te lang voor een reactie. Gebruik geen natuurlijke verbindingen. Doe geen moeite om natuurlijke joins te leren. Ze zijn een gruwel.

Waarom? De voorwaarden voor deelname zijn gebaseerd op kolommen met dezelfde namen . Natuurlijke joins houden zelfs geen rekening met gedeclareerde externe sleutelrelaties. Dit kan behoorlijk gevaarlijk zijn. Of -- in mijn geval -- omdat bijna al mijn tabellen CreatedAt . hebben en CreatedBy , ze zijn sowieso nutteloos.

Vermeld in plaats daarvan de join sleutels. In jouw geval (omdat je select * hebt) ), de using clausule is het meest geschikt:

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

Dit heeft ook als voordeel dat de sleutels expliciet worden getoond in de query, wat de kans op fouten aanzienlijk verkleint.



  1. Grote MySql-tabel exporteren

  2. 5 tips voor het beheren van uw teams tijdens sociale afstand

  3. Hoe leidende witruimte in SQL Server te verwijderen - LTRIM()

  4. Inloggen mislukt voor gebruiker 'DOMAIN\MACHINENAME$'