select s.segment_id, r.object_id_two as party_id, t.package_name from acs_rels r left outer join rel_segments s on (r.object_id_one = s.group_id and r.rel_type = s.rel_type), acs_object_types t where r.rel_type = t.object_type and r.rel_id = :rel_id select distinct s.segment_id, s.group_id, s.rel_type, g.group_name, g.join_policy, t.pretty_name as rel_type_pretty_name, coalesce(dl.dependency_level, 0) from rc_all_constraints c, (select rel_segment, required_rel_segment from rc_segment_required_seg_map where rel_side = 'two' UNION ALL select segment_id, segment_id from rel_segments) map, rel_segments s left outer join rc_segment_dependency_levels dl using (segment_id), groups g, acs_object_types t where c.group_id = :group_id and c.rel_type = :rel_type and c.required_rel_segment = map.rel_segment and map.required_rel_segment = s.segment_id and g.group_id = s.group_id and t.object_type = s.rel_type order by coalesce(dl.dependency_level, 0)