ホームページ >データベース >mysql チュートリアル >MySQL でテーブルを自己結合して複数の行からデータを取得する方法
MySQL で同じテーブルを複数回結合する方法
MySQL は、テーブルをそれ自体と結合する機能を提供します。これにより、同じテーブルの異なる行からデータを取得し、行間に新しいリレーションシップを効率的に作成できるようになります。
この概念を説明するために、次のシナリオを考えてみましょう。
2 つのテーブルがあります。 「ドメイン」と「レビュー」です。 "domains" テーブルにはドメイン ID とドメイン名が保存され、"reviews" テーブルにはレビュー データと送信者 (rev_dom_from) と受信者 (rev_dom_for) の両方の参照ドメイン名が含まれます。
あなたのタスクは両方を表示することです。 Web ページ上のドメイン名。標準の LEFT JOIN を使用して 1 つのドメイン名を簡単に表示できますが、「rev_dom_from」列から 2 番目のドメイン名を取得するにはどうすればよいですか?
解決策は複数の結合を利用することです。 「ドメイン」テーブルに複数回結合することで、レビューと対応するドメイン名の間にさまざまな関係を確立できます。
SELECT toD.dom_url AS ToURL, fromD.dom_url AS FromUrl, rvw.* FROM reviews AS rvw LEFT JOIN domain AS toD ON toD.Dom_ID = rvw.rev_dom_for LEFT JOIN domain AS fromD ON fromD.Dom_ID = rvw.rev_dom_from
このクエリでは:
結合されたテーブルにエイリアスを付けることで、2 つのインスタンスを区別し、必要なデータを取得できます。同じテーブルを複数回結合するこの手法は一般に「自己結合」と呼ばれ、単一のテーブル内で複数のリレーションシップを確立する必要があるさまざまなシナリオに適用できます。
以上がMySQL でテーブルを自己結合して複数の行からデータを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。