Мы используем Oracle rownum
для запроса двух таблиц t1->t2
, которые имеют один ко многим отношений:Oracle ROWNUM на «родительской» таблицы
select * from
(
select t1.key, t1.a, t2.b
from t1, t2
where t1.key=t2.key and <filter conditions>
order by t1.a, t2.b
)
where rownum <= 500
Это прекрасно работает в том, что он возвращает первые 500 строк. Но мы хотим вернуть первые 500 строк из t1
, а затем все строки t2
, которые идут вместе с этим. Каков наилучший способ сделать это?
Мы можем удалить использование rownum
sql и на Java просто прочитать первые 500 уникальных значений t1.key
из набора результатов (который будет содержать более 500 полных строк в наборе результатов). Но неясно, будет ли это значительно медленнее.
Просьба предоставить соответствующие структуры таблиц, образец данных в обеих таблицах и желаемый результат. –