The best solution to avoid multiple join operations seems to be:
- put the columns that will be used for the join in a list (right_on column)
- explode that list
- join once on the exploded column
- group_by to concat the joined results
- expand the new list with a list.get iteration or a list.to_struct() .unnest