ReQL command: inner_join
Command syntax
sequence.inner_join(other_sequence, predicate_function) → stream array.inner_join(other_sequence, predicate_function) → array
Description
Returns an inner join of two sequences.
The returned sequence represents an intersection of the left-hand sequence and the right-hand sequence: each row of the left-hand sequence will be compared with each row of the right-hand sequence to find all pairs of rows which satisfy the predicate. Each matched pair of rows of both sequences are combined into a result row. In most cases, you will want to follow the join with zip to combine the left and right results.
Note that
inner_join
is slower and much less efficient than using eq_join or concat_map with get_all. You should avoid usinginner_join
in commands when possible.
Example: Return a list of all matchups between Marvel and DC heroes in which the DC hero could beat the Marvel hero in a fight.
r.table('marvel').inner_join(r.table('dc')) {|marvel_row, dc_row|
marvel_row[:strength] < dc_row[:strength]
}.zip().run(conn)
(Compare this to an outer_join with the same inputs and predicate, which would return a list of all Marvel heroes along with any DC heroes with a higher strength.)
© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/api/ruby/inner_join/