Existuje NATURAL JOIN
:
SELECT *
FROM subscription
NATURAL JOIN delivery;
Citace příručky k SELECT
:
Fungovalo by to pro vaše testovací nastavení, ale nedělá přesně to, co požadujete . Spojení je založeno na tom, že všechny sloupce sdílejí stejný název. Cizí klíče se neberou v úvahu. Případy, kdy NATURAL JOIN
je to dobrý nápad, je jich málo a jsou daleko od sebe.
Zjednodušte kód / méně podrobný
Pro začátek můžete použít aliasy tabulek a nepotřebujete závorky kolem podmínek spojení s ON
(na rozdíl od USING
):
SELECT *
FROM subscription s
JOIN delivery d ON d.magazine_id = s.magazine_id
AND d.user_id = s.user_id;
Protože názvy sloupců v podmínkách spojení jsou identické, můžete je dále zjednodušit pomocí USING
:
SELECT *
FROM subscription s
JOIN delivery d USING (magazine_id, user_id);
Neexistuje žádná varianta syntaxe, která by automaticky spojovala na základě omezení cizího klíče. Museli byste se dotazovat na systémové katalogy a sestavit SQL dynamicky.