C'è un NATURAL JOIN
:
SELECT *
FROM subscription
NATURAL JOIN delivery;
Citando il manuale su SELECT
:
Funzionerebbe per la tua configurazione di prova, ma non esegue rigorosamente ciò che chiedi . La connessione si basa su tutte le colonne che condividono lo stesso nome. Le chiavi esterne non vengono considerate. I casi in cui NATURAL JOIN
è una buona idea sono pochi e rari.
Semplifica il codice / meno dettagliato
Per cominciare, puoi usare alias di tabella e non hai bisogno di parentesi attorno alle condizioni di unione con ON
(a differenza di USING
):
SELECT *
FROM subscription s
JOIN delivery d ON d.magazine_id = s.magazine_id
AND d.user_id = s.user_id;
Poiché i nomi delle colonne nelle condizioni di unione sono identici, puoi semplificare ulteriormente con USING
:
SELECT *
FROM subscription s
JOIN delivery d USING (magazine_id, user_id);
Non esiste una variante della sintassi che crea automaticamente join basati su vincoli di chiave esterna. Dovresti interrogare i cataloghi di sistema e creare l'SQL in modo dinamico.