select distinct... from a left join b on ... left join c on ... where ...
可考虑分别给B,C两表增加“序号”伪列,然后再做联接。例如:select * from a, (select row_number() over(order by 1) r,b.* from b) b, (select row_number() over(order by 1) r,c.* from c) c where a.id=b.parent_id(+) and b.parent_id=c.parent_id(+) and b.r=c.r(+) 当然如果B,C两表数据较多的情况下,执行效率不敢恭维
from a left join b on ...
left join c on ...
where ...
(select row_number() over(order by 1) r,b.* from b) b,
(select row_number() over(order by 1) r,c.* from c) c
where a.id=b.parent_id(+)
and b.parent_id=c.parent_id(+)
and b.r=c.r(+)
当然如果B,C两表数据较多的情况下,执行效率不敢恭维