ホームページ > データベース > mysql チュートリアル > 自己結合は、単一のデータベース テーブル内の関係を見つけるのにどのように役立ちますか?

自己結合は、単一のデータベース テーブル内の関係を見つけるのにどのように役立ちますか?

Linda Hamilton
リリース: 2025-01-14 12:36:44
オリジナル
262 人が閲覧しました

How Can Self-Joins Help Me Find Relationships Within a Single Database Table?

データベースの自己結合について

自己結合は、テーブルがそれ自体と結合する強力なデータベース手法です。 これにより、データベース正規化の重要な原則である重複テーブルの作成に伴うデータの冗長性が回避されます。

自己結合の概念

emp 列と Name 列を持つ Boss_id テーブルを想像してください。 各従業員の上司の名前を見つけるために、本能的に 2 番目のテーブルを作成するかもしれません。 ただし、自己結合は単一の emp テーブル内でこれをエレガントに解決します。

実践的な自己結合の例

このサンプル データを使用してみましょう:

<code>Table: emp

Id  Name  Boss_id
1   ABC   3
2   DEF   1
3   XYZ   2</code>
ログイン後にコピー

各従業員の上司の名前を取得するには、自己結合を使用します。

<code class="language-sql">SELECT e1.Name, e2.Name AS Boss
FROM emp e1
INNER JOIN emp e2 ON e1.Boss_id = e2.Id;</code>
ログイン後にコピー

クエリ結果

結果のデータセットは次のようになります:

<code>Name  Boss
ABC   XYZ
DEF   ABC
XYZ   DEF</code>
ログイン後にコピー

これは、上司と従業員の関係を明確に示しています。ABC の上司は XYZ、DEF の上司は ABC、XYZ の上司は DEF です。

自己結合のアプリケーション

自己結合は多用途であり、次のようなさまざまな状況で使用されます。

  • 関係の識別: 同じテーブル内の行間の接続を明らかにします。
  • 重複検出: 重複または一意のエントリを見つけます。
  • 階層データ表現: 階層構造の構築。
  • 再帰クエリ: 再帰的な関係を通じて結果を生成します。

以上が自己結合は、単一のデータベース テーブル内の関係を見つけるのにどのように役立ちますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート