多くのDBMS(mysql、postgres、mssqlなど)を見つけることができる限り、fkとpkの組み合わせはデータへの変更を制限するためだけに使用されますが、それらはネイティブで結合する列を自動的に選択するために使用されることはほとんどありません(名前での自然な結合のように)。何故ですか?pk / fkを使用して2つのテーブル間のリレーションシップを既に定義している場合、データベースでそれらのテーブルを結合するとpk / fk列で結合したいことがわかりません。
編集:これを少し明確にするために:
table1とtable2があるとします。table1の列aには外部キーがあり、これはtable2の主キーbを参照します。これらのテーブルを結合する場合、次のようにする必要があります。
SELECT * FROM table1
JOIN table2 ON table1.a = table2.b
ただし、table1.aがtable2.bを参照するキーを使用してすでに定義しているので、DBMSシステムがtable1.aとtable2.bを結合列として自動的に使用することを難しくするべきではないようです。次のように単純に使用できます:
SELECT * FROM table1
AUTO JOIN table2
ただし、多くのDBMSはこのようなものを実装していないようです。