0

SQLクエリについてサポートが必要です。

2つのテーブルがあります。1つはユーザーで、もう1つはユーザーフレンドです。

users table:
aid email                    firstname 
1   example@mail.com         example
2   example2@mail.com        example2
3   example3@mail.com        example3
4   example4@mail.com        example4

userfriends tables:
reqid     email                    friendemail               status 
1         example1@mail.com        example2@mail.com            1       (example1 is frnds with example2)
2         example2@mail.com        example4@mail.com            2       (example2 request pending)
3         example3@mail.com        example1@mail.com            1       (example1 is frnds with example3)
4         example4@mail.com        example1@mail.com            1       (example1 is frnds with example4)

したがって、ステータスが2の場合、追加リクエストは保留中であり、ステータス1の場合は友達です。私が欲しいのは、ユーザーexample1の完全なフレンドリストを取得したいということです。以前のクエリからの対応する出力のusersテーブルから名前を引き出して、フレンドリストとして表示したいと思います。

4

3 に答える 3

1
select distinct friendemail
from userfriends f
inner join users u on u.email = f.email
where f.status = 1
and u.firstname = 'example'
于 2012-10-23T23:00:01.247 に答える
1

検索された電子メールがどちらかの列にある可能性があるという事実を見逃していると思います。

select u.firstname
from userfriends f, users u where 
u.email='email@domain.com' and f.status=1 and
(u.email = f.email and f.friendsemail='email@domain.com')
or
(u.email = f.friendsemail and f.email='email@domain.com')
于 2012-10-23T23:02:17.123 に答える
0

JOIN両方のテーブルを作成する必要があります。

SELECT users.firstname 
    FROM userfriends UF 
    JOIN users U ON (U.email=UF.friendemail)
WHERE UF.email='your user'
于 2012-10-23T22:59:41.420 に答える