0

用于查询的代码(如下)在它正常工作之前没有改变,但是页面突然开始只显示许多过去事件中的一个。QL 的功能是否以某种方式发生了变化,或者这只是一个我应该等待看看它是否通过的错误?

SELECT name, pic, start_time, end_time, location, description, eid 
FROM event 
WHERE end_time < now() 
AND eid IN ( 
    SELECT eid 
    FROM event_member 
    WHERE uid = XXXXXXXXX ) 
ORDER BY start_time DESC
4

1 回答 1

0

我不完全确定,但 FQL 关于 event_member 的文档可能是关键。您是否尝试过仅在SELECT eid FROM event_member WHERE uid = XXXXXXXXX没有包装器的情况下单独运行内部查询 ( ) 以查看它返回的内容?

event_member 的 FQL 文档指出

如果您不指定 start_time,则只会返回未来的事件。

编辑:我认为这意味着您目前可能需要在start_time < now()其中指定或类似的东西。

(不过,如果是这种情况,我不确定您为什么要退回一件物品,因为这会与您的end_time < now()陈述冲突)。

我的第一个建议可能是使用 FQL 多查询将其拆分为多个查询,并确保 event_member 查询返回您所期望的。就像是:

"event_members":"SELECT eid 
FROM event_member 
WHERE uid = XXXXXXXXX"

"events":"SELECT name, pic, start_time, end_time, location, description, eid 
FROM event 
WHERE end_time < now() 
AND eid IN (SELECT eid FROM #event_members) 
ORDER BY start_time DESC"

查看 event_members 包含您希望的所有条目 - 如果是,请在“events”查询中找到问题,如果没有,请在“event_members”查询中找到问题。

于 2012-05-20T18:42:38.533 回答