我正在使用OrientDB(2.1.8)数据库并使用OrientDB函数(unionall& intersection)执行以下查询。
有各种用户的用户单元,所以我想显示结果,如果两个用户的至少一个userUnits(@ rid =#16:2131,@ rid =#16:2130)相交,则应显示结果。
假设用户#16:2131 userUnits是[admin,manager] 用户#16:2131 userUnits仅为[admin]
所以'admin'userUnits很常见,所以应该显示结果 但是相交命令不起作用。
我的下面的查询在“unionall”函数中工作正常但不能使用“intersect”。
SELECT expand(unionall($a, $b))
LET $a = (SELECT userUnits FROM #16:2131),
$b = (SELECT userUnits FROM #16:2130)
输出来了 - > 管理员,经理 监
但是当我用交叉函数运行我的查询时,它既没有显示任何错误也没有显示结果。
SELECT expand(intersect($a, $b))
LET $a = (SELECT userUnits FROM #16:2131),
$b = (SELECT userUnits FROM #16:2130)
答案 0 :(得分:1)
你可以试试这个:
SELECT intersect($a.userUnits, $b.userUnits)
LET $a = (SELECT userUnits FROM #16:2131),
$b = (SELECT userUnits FROM #16:2130)
我希望它有所帮助
再见