目次
なぜ自己結合を使用するのですか?
自己結合を実行する方法
基本的な構文:
例:従業員とマネージャー
一般的なユースケース
ヒントとメモ
ホームページ データベース SQL SQLでテーブルに参加する方法

SQLでテーブルに参加する方法

Aug 16, 2025 am 09:37 AM
sql 自己接続

従業員とマネージャーの関係などの階層データなど、同じテーブル内の行を比較するために自己結合が使用されます。エイリアスを使用して2つの別々のインスタンスとしてテーブルを扱います。

SQLでテーブルに参加する方法

SQLでテーブル自身に参加することは、自己結合と呼ばれます。同じテーブル内の行を比較したい場合に役立ちます。特に、従業員の階層、スレッドコメント、製品の比較などの階層データまたはリレーショナルデータで比較します。

なぜ自己結合を使用するのですか?

自己結合は、2つの別々のテーブルであるかのように同じテーブルを扱います。これは、次のようなシナリオで一般的です。

  • 同じマネージャーに報告する従業員を見つける
  • 同様の属性と製品を比較します
  • 親子関係を表示する(たとえば、従業員とマネージャー)

同じテーブルを2回参照するため、テーブルエイリアスを使用して2つのインスタンスを区別する必要があります


自己結合を実行する方法

JOIN構文(通常はINNER JOINまたはLEFT JOIN )を使用し、異なるエイリアスで同じテーブルを2回参照します。

基本的な構文:

 a.column、b.columnを選択します
table_name aから
a.common_column = b.related_columnにtable_name bに参加します
ここで条件;

注: abは、同じテーブルのエイリアスです。


例:従業員とマネージャー

employeesテーブルがあるとします:

従業員_id名前Manager_id
1アリスヌル
2ボブ1
3チャーリー1
4ダイアナ2

各従業員をマネージャーの名前とともにリストしたいと思います。

選択します 
    E.Name as Employee_name、
    M.Name as manager_name
従業員からe
E.Manager_id = m.employee_idで従業員を左に参加します。

結果:

Employee_name manager_name
アリス ヌル
ボブ アリス
チャーリー アリス
ダイアナ ボブ

ここ:

  • e =従業員
  • m =マネージャー(同じ表、異なるエイリアス)
  • マネージャーのない従業員(アリスのような)がまだ含まれていることを保証するLEFT JOIN

一般的なユースケース

  • 階層データ:組織チャート、サブカテゴリを備えたカテゴリ
  • 列の比較:同じ都市で顧客を見つけ、同じ価格の製品
  • シーケンシャルデータ:行を前/次のものと比較するログまたはイベント(多くの場合、ウィンドウ関数と組み合わせる)

ヒントとメモ

  • 常にテーブルエイリアスを使用します。そうしないと、データベースは参照しているインスタンスがわかりません。
  • 一致していないレコード(トップレベルマネージャーなど)を含める場合はLEFT JOINを使用します。
  • 大規模なテーブルではセルフジョインが遅くなる可能性があります。関連する列(IDや関係フィールドなど)がインデックスが付けられていることを確認してください。
  • 必要に応じてテーブルに複数回参加できます(たとえば、従業員→マネージャー→CEO)が、クエリを読み取り可能に保ちます。

基本的に、自己結合は定期的な結合にすぎません。トリックは、テーブルがエイリアスを使用して2つの別々のものであるふりをすることです。パターンを取得すると、それは簡単です。

以上がSQLでテーブルに参加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ホットトピック

SQLで今年の初日と最終日を取得するにはどうすればよいですか? SQLで今年の初日と最終日を取得するにはどうすればよいですか? Aug 11, 2025 pm 05:42 PM

dayearisobtainded byconstructatingtinatinating at -stofthegivenyear、およびtheLastDayisdecember31STHESAMEYEAR、withMethodsvarydAtabaseystem;

SQLで列の合計を見つける方法は? SQLで列の合計を見つける方法は? Aug 08, 2025 pm 05:54 PM

tofindthesumofacolumninsql、usethesum()function、それはnumersolumn whienignoringnulls;

SQL実行コンテキストと許可を理解する SQL実行コンテキストと許可を理解する Aug 16, 2025 am 08:57 AM

SQL実行コンテキストとは、SQLステートメントを実行する際のIDまたは役割を指します。これにより、どのリソースと操作許可にアクセスできるかが決定されます。許可設定は、最小許可の原則に従う必要があり、一般的な権限には、選択、挿入、実行などが含まれます。許可の問題をトラブルシューティングするには、ログイン名、役割許可、エグゼキューアズ設定、スキーマ認証を確認する必要があります。コンテキストのスイッチングの実行は、Executeasを通じて実装できますが、ユーザーの存在、許可許可、パフォーマンスセキュリティの影響に注意を払う必要があります。 db_ownerまたはsysadminの役割を任意に割り当てないようにすることをお勧めします。アプリケーションアカウントは、必要なオブジェクトのみにアクセスし、スキーマを通じて承認される必要があります。

SQLでテーブルに参加する方法 SQLでテーブルに参加する方法 Aug 16, 2025 am 09:37 AM

aself-joinisusedtocomparerowswiths sesametable、sutsinhierarchicaldatalike employe-managerrelationships、by treating by treating woseparateinstancessingingingisaliase、asdemontatedemployedployeeeeeeeSalongdeTheirmanagers'swithointjointopopointopecludecludetocludetoclutocludetopointopointopを

SQLのAlter Tableステートメントは何ですか? SQLのAlter Tableステートメントは何ですか? Aug 08, 2025 pm 02:13 PM

thealtertabletatementisusedtomodifyAnexistingtable’sstructurewithoutrecreatingit; 1.addanewcolumnusingadddcolumn; 2.dopacolumn withdropcolumn、whialsodeletesitsdata; 3.renameacolumnusingrenamecolumn、withsyntaxconsistenmysql、sqlserver、およびpostgresql; 4

SQLでビューを作成する方法 SQLでビューを作成する方法 Aug 11, 2025 pm 12:40 PM

ビューを作成するための構文は、createviewview_nameasselectステートメントです。 2。ビューは実際のデータを保存しませんが、基礎となるテーブルのリアルタイムクエリ結果に基づいています。 3。createorreplaceviewを使用して、ビューを変更できます。 4.ビューは、Dropviewを介して削除できます。 5.ビューは、複雑なクエリを簡素化し、データアクセス制御を提供し、インターフェイスの一貫性を維持するのに適していますが、パフォーマンスとロジックに注意を払う必要があり、最終的に完全な文で終わります。

SQLで完全な外側結合を使用する方法は? SQLで完全な外側結合を使用する方法は? Aug 17, 2025 am 12:25 AM

afullouterjoinreturnsallrowsfrombothtables、withnullswherenomatchexists; 1)itcombinesmatchingRecordsandIncludedsunmatchedRowsfromtheftreftandandandandandantables;

SQLデータベースからMongoDBへの移行:課題とソリューション SQLデータベースからMongoDBへの移行:課題とソリューション Aug 16, 2025 pm 01:40 PM

変換datAmodelsbyembeddingorrecinging basedOnaccesspatternSteadofusingjoins;

See all articles