ホームページ  >  記事  >  データベース  >  ユーザー情報を取得するために、同じテーブルを異なる列で複数回効率的に結合するにはどうすればよいですか?

ユーザー情報を取得するために、同じテーブルを異なる列で複数回効率的に結合するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-24 10:36:30326ブラウズ

How to Efficiently Join the Same Table Multiple Times on Different Columns for User Information Retrieval?

多彩なユーザー情報取得のために異なる列で同じテーブルを 2 回結合

このクエリは、opened_by 列と Closed_by 列の両方のユーザー名を取得することを目的としています。苦情テーブル。ユーザーはユーザー テーブルに保存されます。課題は、異なる列を使用してユーザー テーブルを複数回結合することにあります。

このタスクを達成するには、ユーザー テーブルのインスタンスごとに LEFT JOIN 操作を使用し、わかりやすくするために結合テーブルに A および B というエイリアスを付けます。クエリは次のように処理されます。

SELECT 
     complaint.complaint_text, 
     A.username, 
     B.username
FROM 
     complaint 
     LEFT JOIN user A ON A.user_id=complaint.opened_by 
     LEFT JOIN user B ON B.user_id=complaint.closed_by

このクエリでは、まず、苦情テーブルから apply_text 列を選択し、opened_by 列と Closed_by 列の両方について user テーブルからユーザー名を選択します。

次に、LEFT JOIN を使用して、opened_by 列に基づいて苦情テーブルとユーザー テーブルを結合します。これにより、complaint.opened_by の user_id を user テーブルの user_id と照合し、対応するユーザー名を取得できます。結合されたテーブルに A というエイリアスを付けます。

次に、closed_by 列に基づいて、苦情テーブルとユーザー テーブルの間で別の LEFT JOIN 操作を実行します。この結合テーブルに B という別名を付けます。

このクエリの結果には、苦情の詳細と、苦情申し立て者と解決済みの列の両方のユーザー名が明確に表示されます。

以上がユーザー情報を取得するために、同じテーブルを異なる列で複数回効率的に結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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