2012-04-16 93 views
1

我正在使用FQL multiquery,我只需要类似他们的query2示例,但我需要从两个不同的查询中选择uid。FQL在IN子句中多查询多个SELECT语句

换句话说,他们有:

"query2":"SELECT name, url, pic FROM profile WHERE id IN (SELECT uid FROM #query1)" 

我想有这样的:

"query3":"SELECT name, url, pic FROM profile WHERE id IN (SELECT uid FROM #query1, SELECT uid FROM #query2)" 

但显然(SELECT uid FROM #query1, SELECT uid FROM #query2)不是像Facebook返回一个错误在这里使用正确的语法。什么是正确的语法?我尝试了谷歌搜索,但这对Google来说很难。

是的,我知道我可以在query3query4之间加一个query4并将(SELECT uid FROM #query1, SELECT uid FROM #query2)分开,但这样感觉更优雅。

回答

0

我最终只是让第二SELECT uid FROM #query2另一个查询(query4),因为它看起来像Facebook不支持正是我最初想。

1

你可以加入查询1和查询2,所以你只能得到一个表,我认为它是实现你想要做的最好的方法。

SELECT xxx FROM xxx WHERE xxx IN(
    SELECT q1.uid,q2.uid 
    FROM (query1) as q1, (query2) as q2 
    WHERE "joining clause" 
) 

来源: Join two sql queries

+0

不幸的是,这不起作用(只是尝试),因为Facebook只允许'FROM'部分中的一个表(请参阅https://developers.facebook.com/docs/reference/fql/,Query部分)。 – houbysoft 2012-04-16 20:29:01