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

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

Mary-Kate Olsen
リリース: 2025-01-14 12:28:43
オリジナル
309 人が閲覧しました

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

自己結合: 包括的な概要

リレーショナル データベース管理では、自己結合は単一テーブル内のデータをクエリするための強力な手法です。 この方法を使用すると、同じテーブル内の行を接続し、効果的に 2 つの異なるデータセットとして扱うことができます。

自己結合のメカニズムを理解する

自己結合は、テーブルの構造内で明示的に定義されていない列または行間の関係を確立する場合に特に便利です。 従業員 ID、名前、スーパーバイザー ID を含む「従業員」テーブルについて考えてみましょう。 自己結合により、従業員と上司の情報を簡単に取得できます。

自己結合の例

サンプル データセットを使用してこれを調べてみましょう:

<code>Table: Employees

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

各従業員の名前を上司の名前と一緒に表示するには、自己結合を使用します。

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

このクエリは、「Employees」テーブルをそれ自体にリンクします。 e1 は従業員を表し、e2 は上司を表します。結合条件は、従業員の Supervisor_id とスーパーバイザーの Id を一致させます。

結果テーブル

クエリの出力は次のようになります:

<code>| EmployeeName | SupervisorName |
|---|---|
| ABC          | XYZ            |
| DEF          | ABC            |
| XYZ          | DEF            |</code>
ログイン後にコピー

これは、各従業員とそれに対応する上司を明確に示しています。

自己結合はデータ操作に非常に役立ち、複雑なクエリの作成を容易にし、データベースから貴重な洞察を明らかにします。

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

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