NATURAL JOIN
があります :
SELECT *
FROM subscription
NATURAL JOIN delivery;
テストのセットアップでは機能しますが、要求したことを厳密に実行しているわけではありません 。接続は、同じ名前を共有するすべての列に基づいています。外部キーは考慮されません。 NATURAL JOIN
の場合 良いアイデアはほとんどありません。
コードを簡素化/冗長性を減らす
手始めに、テーブルエイリアスを使用でき、ON
を使用して結合条件を括弧で囲む必要はありません。 (USING
とは異なります ):
SELECT *
FROM subscription s
JOIN delivery d ON d.magazine_id = s.magazine_id
AND d.user_id = s.user_id;
結合条件の列名は同じであるため、USING
を使用してさらに簡略化できます。 :
SELECT *
FROM subscription s
JOIN delivery d USING (magazine_id, user_id);
外部キー制約に基づいて自動的に結合を行う構文バリアントはありません。システムカタログにクエリを実行し、SQLを動的に構築する必要があります。