【问题标题】:FQL NOT IN Equivalent operator like <> , EXCEPT, !=FQL NOT IN 等价运算符,如 <> 、 EXCEPT、 !=
【发布时间】:2013-07-23 21:09:44
【问题描述】:

我正在尝试开发此代码:

$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 之类的运算符,除了...我如何使用 FQL 来做到这一点?...

【问题讨论】:

    标签: php facebook-fql


    【解决方案1】:

    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()
    ))
    

    【讨论】:

    • 这个工作只是把一些 where 条件然后你可以添加 'AND NOT' ------ 例如 "WHERE filter_key = 'nf' AND NOT (uid=me())跨度>
    【解决方案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))
    

    这将获取来自未知用户的多个页面的消息,即用户的所有帖子或不是页面本身的页面,也就是粉丝。

    【讨论】:

      【解决方案3】:

      FQL 中没有 NOT IN 运算符。您可以使用 IN 进行简单的选择并使用 PHP 进行否定。这有点开销,但据我所知,这是唯一的方法。

      我找到了一个相关的帖子:link here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-11
        • 2011-01-21
        • 2023-03-21
        • 1970-01-01
        相关资源
        最近更新 更多