Spec-Zone.ru › RethinkDB ruby

Команда ReQL: inner_join

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

sequence.inner_join(other_sequence, predicate_function) → stream
array.inner_join(other_sequence, predicate_function) → array

Описание

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

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

Обратите внимание, что inner_join медленнее и значительно менее эффективно, чем использование eq_join или concat_map с get_all. Следует избегать использования inner_join в командах, когда это возможно.

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

r.table('marvel').inner_join(r.table('dc')) {|marvel_row, dc_row|
    marvel_row[:strength] < dc_row[:strength]
}.zip().run(conn)

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

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

  • eq_join
  • outer_join
  • zip

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

Spec-Zone.ru

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