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.