This is sparse. I will write more later once I know it works properly.

> source = ReferrableJoin.new(:languages, :source_language)
> target = ReferrableJoin.new(:languages, :target_language)
> Translation.joins(source, target).where(source.relation[:id].lt(2)).size
=> 3 
> Translation.joins(source, target).where(target.relation[:id].lt(2)).size
=> 0