Existe um
NATURAL JOIN
:SELECT *
FROM subscription
NATURAL JOIN delivery;
Citando o manual sobre
SELECT
:Funcionaria para sua configuração de teste, mas não está fazendo estritamente o que você pede . A conexão é baseada em todas as colunas que compartilham o mesmo nome. Chaves estrangeiras não são consideradas. Os casos em que
NATURAL JOIN
é uma boa idéia são poucos e distantes entre si. Simplifique o código/menos verboso
Para começar, você pode usar aliases de tabela e não precisa de parênteses nas condições de junção com
ON
(diferente de USING
):SELECT *
FROM subscription s
JOIN delivery d ON d.magazine_id = s.magazine_id
AND d.user_id = s.user_id;
Como os nomes das colunas nas condições de junção são idênticos, você pode simplificar ainda mais com
USING
:SELECT *
FROM subscription s
JOIN delivery d USING (magazine_id, user_id);
Não há nenhuma variante de sintaxe fazendo junções com base em restrições de chave estrangeira automaticamente. Você teria que consultar os catálogos do sistema e construir o SQL dinamicamente.