Det finns en NATURAL JOIN
:
SELECT *
FROM subscription
NATURAL JOIN delivery;
Citerar handboken om SELECT
:
Det skulle fungera för din testinstallation, men det gör inte strikt vad du ber om . Kopplingen bygger på att alla kolumner delar samma namn. Främmande nycklar beaktas inte. De fall där NATURAL JOIN
är en bra idé är få och långt emellan.
Förenkla koden / mindre utförlig
Till att börja med kan du använda tabellalias och du behöver inte ha parenteser runt anslutningsvillkoren med ON
(till skillnad från med USING
):
SELECT *
FROM subscription s
JOIN delivery d ON d.magazine_id = s.magazine_id
AND d.user_id = s.user_id;
Eftersom kolumnnamnen i anslutningsvillkoren är identiska kan du förenkla ytterligare med USING
:
SELECT *
FROM subscription s
JOIN delivery d USING (magazine_id, user_id);
Det finns ingen syntaxvariant som automatiskt gör joins baserat på främmande nyckelbegränsningar. Du skulle behöva fråga systemkatalogerna och bygga SQL dynamiskt.