0

次のようなユーザーテーブルがあります。

      id                      some attribute
1196670907478919031,fb39f78853bfe42279a8f56bc5671eb9,.....
4915018864030990478,44ecf841a778525b925023321761e458, ........
3161434036923224050,2fd54178a92a4b1a83643d9faa1fec9e,......

今、私は次のように私のfriendedgesテーブルを持っています

      a                          b               status
 '4915018864030990478', '3161434036923224050', 'accepted'
 '4915018864030990478', '1196670907478919031', 'accepted'

id = 4915018864030990478のユーザーのすべての友達を取得するには、次のクエリを作成しましたが、次の結果が表示されますクエリ

select id, firstName, lastName, gender, pictureSet  FROM  Member m JOIN  friendedges f ON f.a = m.id where a = "4915018864030990478";

結果

 '4915018864030990478', 'sdsds', 'dsd', 'M', '1'
 '4915018864030990478', 'sdsds', 'dsd', 'M', '1'

友達IDを取得する必要がある場所。そして、なぜそれが重複した結果を生成したのかわかりません。

4

2 に答える 2

1

DISTINCT重複を削除するために使用します。

select DISTINCT f.b, firstName, lastName, gender, pictureSet  
FROM  Member m
JOIN  friendedges f ON f.a = m.id 
where f.a = "4915018864030990478";
于 2013-03-25T14:13:26.173 に答える
0

あなたが欲しいのはこれです:

select f.id, f.firstName, f.lastName, f.gender, f.pictureSet
FROM Member m
JOIN friendedges e ON e.a = m.id
JOIN Member f ON e.b = f.id
where e.a = "4915018864030990478";

またはもっと簡単に(メンバーからのデータが必要ない場合):

select id, firstName, lastName, gender, pictureSet
FROM  Member m JOIN  friendedges f ON f.b = m.id
where a = "4915018864030990478";

2番目のクエリでは、に変更f.aしましたf.b

于 2013-03-25T14:13:16.143 に答える