1

私はこのコードを開発しようとしています:

$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を使用したくないがNOT INを使用したくないということですが、FQLはNOT IN、EXCEPTなどの演算子をサポートしていません...どうすればFQLでそれを行うことができますか?...

4

3 に答える 3

15

FacebookはNOTINをサポートしています。あなたはそれを十分なパラテンスで包む必要があります。

たとえば、現在のユーザーまたは現在のユーザーとの友達ではない、イベントに参加しているユーザーを見つけるには、次のようにします。

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()
))
于 2012-08-20T14:01:55.523 に答える
2

やる方法を見つけて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))

これにより、不明なユーザーによる複数のページからのメッセージが取得されます。つまり、ユーザーによるすべての投稿、またはページ自体ではないページ、別名ファンです。

于 2012-11-20T11:57:55.860 に答える
1

FQL にはNOT IN演算子はありません。INを使用して単純な選択を行い、PHP を使用して否定することができます。少しオーバーヘッドがありますが、私の知る限り、それが唯一の方法です。

関連する投稿を見つけました: link here .

于 2012-05-10T11:45:29.510 に答える