Istnieje NATURAL JOIN
:
SELECT *
FROM subscription
NATURAL JOIN delivery;
Cytując instrukcję SELECT
:
Działałoby to w przypadku konfiguracji testowej, ale nie robi dokładnie tego, o co prosisz . Połączenie opiera się na wszystkich kolumnach o tej samej nazwie. Klucze obce nie są brane pod uwagę. Przypadki, w których NATURAL JOIN
to dobry pomysł, są bardzo nieliczne.
Uprość kod / mniej gadatliwy
Na początek możesz użyć aliasów tabel i nie potrzebujesz nawiasów wokół warunków złączenia z ON
(w przeciwieństwie do USING
):
SELECT *
FROM subscription s
JOIN delivery d ON d.magazine_id = s.magazine_id
AND d.user_id = s.user_id;
Ponieważ nazwy kolumn w warunkach łączenia są identyczne, możesz jeszcze bardziej uprościć za pomocą USING
:
SELECT *
FROM subscription s
JOIN delivery d USING (magazine_id, user_id);
Nie ma wariantu składni, który automatycznie tworzy sprzężenia na podstawie ograniczeń klucza obcego. Musiałbyś przeszukiwać katalogi systemowe i dynamicznie budować SQL.