【发布时间】:2015-05-12 15:19:58
【问题描述】:
我有一个与此非常相似的查询:
SELECT FROM Post
LET
$category = (SELECT EXPAND(out('PartOf')) FROM $current),
$poster = (SELECT EXPAND(in('Posted')) FROM $current)
WHERE
$poster <> #18:1
AND $poster IN (SELECT EXPAND(out('IsUser')) FROM (SELECT EXPAND(out('Related')) FROM #18:1) WHERE out('RelatedIn') IN ($category))
LIMIT 10000
还有这样的图表:
CREATE CLASS Post EXTENDS V;
CREATE CLASS Category EXTENDS V;
CREATE CLASS User EXTENDS V;
CREATE CLASS UserRelated EXTENDS V;
CREATE CLASS PartOf EXTENDS E;
CREATE CLASS IsUser EXTENDS E;
CREATE CLASS Posted EXTENDS E;
CREATE CLASS Related EXTENDS E;
CREATE CLASS RelatedIn EXTENDS E;
PartOf relates Post and Cateogry
IsUser relates UserRelated and User
Posted relates User and Post
Related relates User and UserRelated
RelatedIn relates UserRelated and Category
UserRelated is an hyper-edge
我要查找的是来自与另一个用户相关的用户 (#18:1) 的帖子,其中用户之间的关系与查询当时正在遍历的帖子的类别属于同一类别。
AND 后的 where 子句不起作用。如果我删除它,查询会给出相同的结果。
另一方面,如果我用特定的@rid 更改该子句中的 $category,查询会完美运行...但我需要多个特定类别。
那么,这个查询有什么问题?
(我希望这个解释足够清楚)
谢谢
【问题讨论】: