LEFT JOIN Oracle DB лимит строк
Каким образом можно сократить количество взятых строк из таблицы Jobs, чтобы при выборе значений брались все значения из первой таблицы и только 10 значений из второй?
SELECT *
FROM HR.JOB_HISTORY
LEFT JOIN HR.JOBS
ON JOB_HISTORY.job_id = JOBS.job_id
WHERE rownum < 10;
Ответы (2 шт):
Автор решения: Akina
→ Ссылка
SELECT *
FROM HR.JOB_HISTORY JH
LEFT JOIN ( SELECT *,
ROW_NUMBER() OVER (PARTITION BY JB.job_id
ORDER BY JB.id -- обязательна уникальная сортировка
) rownum
FROM HR.JOBS JB ) JBS
ON JH.job_id = JBS.job_id
WHERE JBS.rownum < 10;
Автор решения: 0xdb
→ Ссылка
Вот так:
select *
from hr.job_history jh
left join (
select *
from hr.jobs jb
order by job_id
fetch first 10 rows only) jb on jb.job_id = jh.job_id