2012-06-13 72 views
0

林tryint得到下面的查詢返回了兩個朋友的結果:FQL與限制不返回結果爲所有用戶

SELECT pid, owner 
FROM photo 
WHERE aid IN (
    SELECT aid 
    FROM album 
    WHERE owner in (
    SELECT uid2 
    FROM friend 
    WHERE uid1=me() 
    LIMIT 0, 2)) 

但由於某些原因,它只能顯示其中的一個結果,和返回的行數不超過限額(僅約800)

當我運行:

SELECT uid2 
FROM friend 
WHERE uid1=me() 
LIMIT 0, 2 

我得到的結果有兩個朋友,如同預期,當我手動做這樣的查詢形成:

SELECT pid, owner 
FROM photo 
WHERE aid IN (
    SELECT aid 
    FROM album 
    WHERE owner = USER_ID_FROM_LAST_QUERY 

我得到的結果Id期望爲兩個用戶,但爲什麼不會使用IN語句和子查詢?

編輯:我試圖實現的是獲得我所有朋友的照片。只要求所有我的朋友的所有照片將超過5000張照片,因此我無法在1個查詢中獲得所有內容。

目前我通過爲每個用戶進行查詢來獲得它,以獲得他的所有照片 - 並且它工作正常。 (如果你忽略它需要2-3分鐘來執行的事實,所以我想通過做較少的查詢,縮短了運行時間

編輯:更多的信息:

用下面的查詢我從兩個獲得專輯用戶:

SELECT aid, owner 
FROM album 
WHERE owner in (
    SELECT uid2 
    FROM friend 
    WHERE uid1=me() 
    LIMIT 0, 2) 

但與完整的查詢,我只能從這些用戶所擁有的專輯圖片

+0

我建議你爲每個朋友使用兩個查詢。我認爲它會獲得來自第一個朋友的所有照片,並耗盡了極限,並且沒有得到第二個朋友的照片。 –

+0

然後,我將不得不爲每個朋友做一個新的查詢(我真的想從我所有的朋友)。運行時間約爲2-3分鐘。 – Etse

回答

0

試試這個:

選擇PID指令,所有者FR OM照片WHERE援助IN(SELECT援助從專輯WHERE所有者在(SELECT uid2 FROM friend WHERE uid1 = me()LIMIT 2))

+0

這不會返回只有兩個PID,他試圖限制它的朋友(2),而不是照片。 –

+0

正如上面我說的那樣,我需要來自我的兩個朋友的所有照片 - 不只是來自我的朋友的兩張照片。我其實想要我所有朋友的所有照片;但是這對於在1個查詢中獲得的數據來說很重要。 – Etse

+0

問題在這裏SELECT pid,owner FROM photo WHERE aid IN(xxxx,yyyy)此查詢僅返回yyyy援助的記錄,而不是兩者。我仍然在尋找爲什麼 –