2011-07-29 6 views
2

JSを使用せずに相互の友人の名前と写真を取得する必要があります。共通の友人のために、以下のお互いの友人のためのfqlクエリを理解するのに役立ちます

見つかりFQLクエリ:

"SELECT uid1 FROM friend WHERE uid2=[targetID] AND uid1 IN (SELECT uid2 FROM friend WHERE uid1=[sourceID])"

ではなく、単にuid1を返すので、私は、人の名前や画像を得ることができる方法はありますか?

編集 -----------私が見つけたと思う。

"SELECT first_name, last_name, pic_small FROM user WHERE uid IN(SELECT uid1 FROM friend WHERE uid2=['targetID'] AND uid1 IN (SELECT uid2 FROM friend WHERE uid1=['sourceID'])) "

+0

'friend'テーブルはミラーリングされていますか?つまり、AがBと友達であれば、AとBの友人ですか?重複は気になりますか? –

+0

これはFacebookから来ているので、重複していると思います。 – pcasa

答えて

3
SELECT uid, first_name, last_name, pic_small 
FROM user 
WHERE uid IN (
    SELECT uid2 
    FROM friend 
    WHERE uid1 = ['sourceID'] 
) 
AND uid IN (
    SELECT uid2 
    FROM friend 
    WHERE uid1 = ['targetID'] 
) 

これは、ソースユーザ(B)と、ターゲットユーザ(C)両方のこと、任意のユーザ(A)を見つけるであろう、と友達です。必ずしも逆向きである必要はありません。友人がBとCとの友人である。

友達テーブルが本当にミラー化されている場合(つまり、すべての行(x、y)に対して行(y、x)もある)、この区別は関係ありません。あなたはグラフAPIとの共通の友人を得ることができます

関連する問題