ホームページ  >  記事  >  データベース  >  関連データを取得するためにテーブルを異なる列で 2 回結合するにはどうすればよいですか?

関連データを取得するためにテーブルを異なる列で 2 回結合するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-24 14:16:02379ブラウズ

How to Join a Table Twice on Different Columns to Retrieve Related Data?

異なる列で同じテーブルを 2 回結合する

user テーブルと苦情テーブルがあるシナリオを考えてみましょう。苦情テーブルには、苦情をオープンした人とクローズした人の両方のユーザー ID が含まれています。目標は、これら両方の個人のユーザー名を表示するクエリを作成することです。

最初は、クエリで苦情を開いた人のユーザー名を取得できます。

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

ただし、苦情を解決した人のユーザー名を取得するには、別の列を使用してユーザー テーブルに再度結合する必要があります。これは、次のクエリを使用して実現されます:

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

このクエリでは:

  • テーブル A は、opened_by 列で結合するために使用されます。
  • テーブル B は

user テーブルを 2 回結合することで、苦情をオープンした人とクローズした人の両方のユーザー名を取得でき、各苦情に関する包括的な情報を表示できます。

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

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