MySQL自己結合を使用する場合と例

When Use Mysql Self Join



MySQL Self-Joinは、テーブルをそれ自体に結合できるようにするSQL結合の一種です。これは、内部結合句や左結合句などの他の結合タイプを使用して、指定された条件に基づいて行を結合することによって機能します。

このチュートリアルでは、MySQLの自己結合を使用してテーブルをそれ自体とマージし、カスタマイズされたデータを作成する方法を示します。







基本的な使用法

MySQL自己結合は、テーブルエイリアスを使用して、1つのステートメントで同じテーブルを複数回繰り返さないようにします。



ノート: テーブルエイリアスに慣れていない場合は、概念を完全に説明している他のチュートリアルを検討してください。



自己結合を使用するための一般的な構文は、2つのテーブルを結合する場合の構文と似ています。ただし、テーブルエイリアスを使用します。以下に示すクエリについて考えてみます。





選択する alias1.colsalias2.cols から tbl1エイリアス1tbl2エイリアス2 どこ [調子]

ユースケースの例

例を使用して、MySQLの自己結合を実行する方法を理解しましょう。次の情報を含むデータベースがあるとします(以下の完全なクエリを参照)

落とす スキーマ もしも 存在する 自己;
作成 スキーマ 自己;
使用する 自己;
作成 テーブル ユーザー((
id INT 主キー 自動増加
ファーストネーム VARCHAR ((255)。
Eメール VARCHAR ((255)。
Payment_id INT
サブスクリプション INT
)。;
入れる の中へ ユーザー((ファーストネームEメールPayment_idサブスクリプション)。 ((「ヴァレリーG.フィリップ」 '[メール保護]' 10001 1)。 ((「SeanR.Stories」 '[メール保護]' 10005 2)。 ((「ボビーS.ニューサム」 '[メール保護]' 100010 5)。;

内側の結合から始めて、最後に左の結合を行います。



内部結合を使用した自己結合

以下のクエリは、上記で作成されたテーブルに対して内部結合を実行します。

選択する al1。* から ユーザーal1 内側 加入 ユーザーal2 オン al1.subscription=al2.subscription 注文者 id DESC ;

出力を以下に示します。

左結合を使用した自己結合

以下のクエリ例は、左結合で自己結合を使用する方法を説明しています。

選択する (( CONCAT ((al1.first_name '->'al2.email)。)。 なので 詳細al1.payment_id から ユーザーal1 加入 ユーザーal2 オン al1.id=al2.id;

出力結果は次のとおりです。

結論

このガイドでは、MySQL自己結合を使用してテーブルをそれ自体と結合する方法について説明しました。

読んでくれてありがとう。