Это может быть старым, мне нужно, чтобы рассчитать общие друг между пользователем X и меня, и обнаружил, что @Sabari ответа полезным, за исключением того, что была ошибка (ненужный внутренний запрос)
SELECT uid2 FROM friend WHERE uid1=me() AND uid2 = '13245')
Этот внутренний запрос даст один результат (13245), поскольку таблица друзей имеет два столбца (оба составляют первичный ключ таблицы), а предложение where помещает условие в оба столбца.
поэтому весь запрос после удаления этого внутренний запрос должен быть:
SELECT uid1, uid2 FROM friend where uid1='13245' and uid2 in (SELECT uid2 FROM friend where uid1=me())
Этот запрос вычисляет список всех «13245» друзей (where uid1='13245'
), которые также являются моими друзьями (внутренний запрос)
вот мой код, чтобы получить список общих друзей в python
def get_friends_ids(id):
query = "select uid1,uid2 from friend where uid1=\"" + str(id) + "\" and uid2 in (select uid2 from friend where uid1=me())"
query = urllib2.quote(query)
url = "https://graph.facebook.com/fql?q=" + query + "&access_token=" + access_token
data = urllib2.urlopen(url).read()
j = json.loads(data)
ids = []
for record in j['data']:
ids.append(record['uid2'])
return ids
Я не вижу, как это работает. Где я могу добавить второго пользователя? Скажите, что мне нужны общие друзья между мной() и id = 13245, как я могу структурировать этот запрос? – JoshDG
Что вы получаете сейчас .. Вы получаете массив друзей ids – Sabari
Пожалуйста, уточните у моего редактирования – Sabari