ホームページ >データベース >mysql チュートリアル >中間テーブルを使用して直接の外部キー関係がないテーブルを結合するにはどうすればよいですか?
直接外部キーを使用しないテーブルの接続: 中間テーブルの利用
直接の外部キー関係が欠如しているテーブルを結合するのは難しい場合があります。 解決策は?両方のテーブルの外部キーを含む中間テーブル。
種、森林、樹木の 3 つのテーブルについて考えてみましょう。 Tree
テーブルは外部キーを介して Species
と Forest
の両方にリンクしますが、Species
と Forest
は相互に直接参照しません。
クエリ: 種と森林データの結合
「北極」地域の森林の森林名、種名、木材の種類を取得するには、次の SQL クエリを使用します。
<code class="language-sql">SELECT Forest.Fo_name, Species.Sp_name, Species.Sp_woodtype FROM Forest INNER JOIN Tree ON Tree.Tr_forest = Forest.Fo_name INNER JOIN Species ON Tree.Tr_species = Species.Sp_name WHERE Forest.Fo_loc = 'ARCTIC' ORDER BY Forest.Fo_name, Species.Sp_name;</code>
クエリの内訳
このクエリはテーブルを効率的に結合します:
Forest
(Tree
テーブル内のフォレスト名) と Tree.Tr_forest
(Tree
テーブル内のフォレスト名) を使用して Forest.Fo_name
と Forest
を結合します。Tree
(Species
テーブル内の種名) と Tree.Tr_species
(Tree
テーブル内の種名) を使用して Species.Sp_name
と Species
を結合します。WHERE
句は結果をフィルタリングして、「北極」にある森林のみを表示します。ORDER BY
は結果を森林名、次に種名で並べ替えます。このメソッドは、Tree
テーブルを Species
と Forest
を接続するブリッジとして効果的に使用し、必要な情報を取得できるようにします。
以上が中間テーブルを使用して直接の外部キー関係がないテーブルを結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。