У меня есть запрос, очень похожий на этот:OrientDB - LET переменная где
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), где отношение между пользователями находится в той же категории, что и категория сообщения, которое запрос просматривает в этот момент.
Предложение where после И не работает. Если я удалю его, запрос даст те же результаты.
С другой стороны, если я изменяю $ category в этом разделе с помощью конкретного @rid, запрос работает отлично ... но мне нужна более одной конкретной категории.
Итак, что не так в этом вопросе?
(я надеюсь, что это объяснение достаточно понятно)
Благодаря
Какова цель этого оператора? <> –
Оператор «<>» означает не равный;) – Jobel