2012-04-16 124 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