选择所有顶点,其中outE过滤器连接到特定的顶点列表

时间:2018-05-27 14:46:06

标签: orientdb

我是ODB的新手,但不是SQL,并且似乎找不到可以学习的教程,或者甚至是类似的q& a;但这可能是我无法正确提出问题。

我正在寻找一种方法来查找特定类的所有顶点(例如声明),这些顶点至少有一个特定的outE类(例如available_to_role),并且那些Edges都具有特定的属性值(例如role =& #34; adj1")和那些边缘也在其相应的其他边缘上具有特定属性值的特定顶点(例如日期)。

我试图从边缘的两侧和边缘进行搜索,但它并没有像预期的那样工作。我总是将所有声明顶点与多个日期列表中的任何一个日期相关联,而不仅仅是与所有日期匹配的声明。

这是我最接近的,但它导致声明返回,只在两个日期之一可用,我不知道如何强制和&&结果只能在所提供的所有日期获得索赔。

SELECT
    *,
    out.label as claim_label,
    in.date as date,
    count(in.date)
FROM
    available_to_role
WHERE
    role='adj1'
AND
    in.date in ['2018-06-02 00:00:00','2018-06-03 00:00:00']
GROUP BY
    in.date

我正在寻找一种方法来获取所有提供日期的特定角色可用的所有声明,而不仅仅是提供的日期之一。并且,我需要将这些结果作为个体回答,而不是汇总(例如["角色","角色"] ["约会""约会" ;])。在所有情况下,我都知道日期和角色,但不知道声明。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我不确定是否正确但是:

试试这个:

select from Claims where outE("available_to_role").role contains "adj1" and out("available_to_role").date in ['2018-06-02 00:00:00','2018-06-03 00:00:00']

如果你想确保Claims类中的顶点与你必须使用的两个日期匹配,那么两个日期的条件

希望有所帮助

此致