ホームページ >データベース >mysql チュートリアル >中間テーブルを使用して直接の外部キー関係がないテーブルを結合するにはどうすればよいですか?

中間テーブルを使用して直接の外部キー関係がないテーブルを結合するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-15 18:27:16687ブラウズ

How to Join Tables Lacking Direct Foreign Key Relationships Using an Intermediate Table?

直接外部キーを使用しないテーブルの接続: 中間テーブルの利用

直接の外部キー関係が欠如しているテーブルを結合するのは難しい場合があります。 解決策は?両方のテーブルの外部キーを含む中間テーブル。

種、森林、樹木の 3 つのテーブルについて考えてみましょう。 Tree テーブルは外部キーを介して SpeciesForest の両方にリンクしますが、SpeciesForest は相互に直接参照しません。

クエリ: 種と森林データの結合

「北極」地域の森林の森林名、種名、木材の種類を取得するには、次の 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>

クエリの内訳

このクエリはテーブルを効率的に結合します:

  1. 最初に、Forest (Tree テーブル内のフォレスト名) と Tree.Tr_forest (Tree テーブル内のフォレスト名) を使用して Forest.Fo_nameForest を結合します。
  2. 次に、Tree (Species テーブル内の種名) と Tree.Tr_species (Tree テーブル内の種名) を使用して Species.Sp_nameSpecies を結合します。
  3. WHERE 句は結果をフィルタリングして、「北極」にある森林のみを表示します。
  4. 最後に、ORDER BY は結果を森林名、次に種名で並べ替えます。

このメソッドは、Tree テーブルを SpeciesForest を接続するブリッジとして効果的に使用し、必要な情報を取得できるようにします。

以上が中間テーブルを使用して直接の外部キー関係がないテーブルを結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。