多彩なユーザー情報取得のために異なる列で同じテーブルを 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 サイトの他の関連記事を参照してください。