используйте setMaxResults для первой таблицы с одним или несколькими объединенными собственными запросами - PullRequest
0 голосов
/ 09 сентября 2018

Я новичок в спящем режиме. У меня есть запрос, подобный следующему

select a.*, b.* from tableA a 
join tableB b on b.aId = a.id 
left join tableC c where <condition>

Здесь отношение от a к b одно ко многим, а b к c одно к одному.

Теперь мне нужно получить первое число строк из tableA со всеми результатами объединения.

Например, в tableA есть 10 строк, каждая из которых соединяется с 2 строками из tableB. Теперь, если я запрашиваю первые 5 строк из tableA, то мне нужно, чтобы все эти строки были соединены с другими таблицами, то есть всего 20 строк.

Как мне написать собственный запрос для этого. Мне нужно сделать собственный запрос. В этом случае мне нужна производительность, поскольку наш запрос может содержать большое количество строк.

Любая помощь приветствуется. Спасибо.

1 Ответ

0 голосов
/ 09 сентября 2018

Вы можете использовать подзапрос и LIMIT:

select a.*, b.* 
from (SELECT * FROM tableA ORDER BY some_col LIMIT 5) a 
join tableB b on b.aId = a.id 
left join tableC c where <condition>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...