Spec-Zone.ru › RethinkDB java

Команда ReQL: innerJoin

Синтаксис команды

sequence.innerJoin(otherSequence, predicate_function) → stream
array.innerJoin(otherSequence, predicate_function) → array

Описание

Возвращает внутреннее соединение двух последовательностей.

Возвращаемая последовательность представляет собой пересечение левой и правой последовательностей: каждая строка левой последовательности сравнивается с каждой строкой правой последовательности, чтобы найти все пары строк, которые удовлетворяют предикату. Каждая соответствующая пара строк обеих последовательностей объединяется в строку результата. В большинстве случаев вам потребуется применить zip для объединения левого и правого результатов.

Обратите внимание, что innerJoin медленнее и значительно менее эффективен, чем использование eqJoin или concatMap с getAll. Следует избегать использования innerJoin в командах, когда это возможно.

Пример: Возвращает список всех противостояний между героями Marvel и DC, в которых герой DC мог бы победить героя Marvel в схватке.

r.table("marvel").innerJoin(r.table("dc"),
    (marvel_row, dc_row) -> marvel_row.g("strength").lt(dc_row.g("strength"))
).zip().run(conn);

(Сравните это с outerJoin с теми же входными данными и предикатом, который вернул бы список всех героев Marvel вместе с любыми героями DC, имеющими более высокую силу.)

Связанные команды

  • outerJoin
  • eqJoin
  • zip

© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/api/java/inner_join/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API