Команда 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'),
lambda marvel_row, dc_row: marvel_row['strength'] < dc_row['strength']
).zip().run(conn)
(Сравните это с outer_join с теми же входными данными и предикатом, который вернёт список всех героев Marvel вместе с любыми героями DC, обладающими большей силой.)
© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/api/python/inner_join/