Как найти общих друзей пользователей

#orientdb

#orientdb

Вопрос:

У меня есть пользователи с друзьями:

 User {
    "@rid:": "#11:2"
    ...
    friends: ["#61:1", "#61:2", "#61:3"]
}
...


User {
    "@rid:": "#11:3"
    ...
    friends: ["#61:2", "#61:3","#61:4"]
}
 

Как я могу найти общих друзей пользователей («#11:2», «#11:3») с osql?

Таким образом, запрос должен вернуться "#61:2", "#61:3" .

Ответ №1:

Попробуйте это:

 select from User where @rid in (select out() from User where @rid = "#11:2") and @rid in (select out() from User where @rid = "#11:3")
 

Надеюсь, это поможет

С уважением

Комментарии:

1. Окей, это работает. Но я думаю, что запрос select out() from User where @rid = "#11:2" лучше заменить на select out() from #11:2

2. Я нажал «объяснить» в studio и вижу, что все документы читаются, но это накладные расходы. Вместо этого запроса я могу выбрать друзей из обоих пользователей и найти совместное вручную в коде моего приложения.