3つのテーブルがあり、そこからユーザーデータを取得したいと思います。
表1 : frei_session
username session_id
Prince 51
Dilip 49
Sumit 50
表2: friendrequest
requestTo requestFrom status
49 50 C
50 51 C
49 51 P
表3: users
accountId userImage
49 image_49.jpg
50 image_50.jpg
51 image_51.jpg
friendrequestテーブルは、 CがCompleteを表し、 PがPendingを表すユーザー間の関係を示します。status = C
両方が友達であり、status = P
リクエストが保留中の場合を意味します。
frei_sessionテーブルには、Webサイトのすべてのオンラインユーザーが表示されます。
ユーザーテーブルには画像のパスが保存されています
ユーザーの画像とそのIDを表示したいと思います。
ユーザー49がオンラインであると仮定します
SELECT IF(a.RequestTo = 49, c.userName, b.userName) username,
IF(a.RequestTo = 49, c.session_ID, b.session_ID) Session_ID
FROM friendRequest a
INNER JOIN frei_session b
ON a.requestTo = b.session_ID
INNER JOIN frei_session c
ON a.requestFrom = c.session_ID
WHERE a.status = 'C' AND
49 IN (a.requestTo, a.requestFrom)
このクエリは、このような出力を表示します
username session_id
Sumit 50
でもこんな出力が欲しい
username session_id userImage
Sumit 50 image_50.jpg
何か案は?