FQL NOT IN Эквивалентный оператор типа <>, EXCEPT,! =

Я пытаюсь разработать этот код:

$users = $facebook->api(array( 'method' => 'fql.query', 'query' => "SELECT uid, last_name, pic_big" + " FROM user WHERE uid IN (" + " SELECT uid" + " FROM page_fan" + " WHERE page_id='411133928921438'" + " AND uid IN (" + " SELECT uid2 FROM friend WHERE uid1 = me()" + " )" + ")" )); 

Идея заключается в том, что я не хочу использовать оператор IN, но не IN, но FQL не поддерживает такие операторы, как NOT IN, EXCEPT … Как я могу это сделать с помощью FQL? …

В FQL нет оператора NOT IN . Вы можете сделать простой выбор, используя IN, и использовать PHP для отрицания. Это немного накладные расходы, но, насколько я знаю, это единственный способ.

Я нашел связанный пост: ссылку здесь .

Facebook поддерживает NOT IN. Вам просто нужно обернуть его в достаточном количестве скобок.

Например, чтобы найти пользователей, посещающих событие, которые не являются текущим пользователем или друзьями с текущим пользователем:

 SELECT uid, name FROM user WHERE uid IN ( SELECT uid FROM event_member WHERE eid=209798352393506 ) AND NOT (uid=me()) AND NOT (uid IN ( SELECT uid1 FROM friend WHERE uid2=me() )) 

Просто нашел способ NOT IN и должен делиться счастливыми новостями;)

 SELECT post_id, actor_id, message FROM stream WHERE source_id in(a, b, c) and NOT (actor_id in (a, b, c)) 

Это позволит получать сообщения с нескольких страниц неавторизованными пользователями, то есть все сообщения пользователей или страниц, которые не являются самими страницами, например, фанами.