「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > ユーザー情報を取得するために、同じテーブルを異なる列で複数回効率的に結合するにはどうすればよいですか?

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

2024 年 11 月 25 日に公開
ブラウズ:944

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

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

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

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

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

リリースステートメント この記事は次の場所に転載されています: 1729735359 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3