better many-many-join