У меня есть главная таблица, которая связана с 10 другими таблицами через отношения один ко многим.
Например:
main Table table1 table2
---------- ------- -------
id * id* id*
name mainTableId ** mainTableId **
column1 column2
Я пробовал:
SELECT *
FROM main_table
LEFT OUTER JOIN table1 On table1.mainTableId = main_table.id
LEFT OUTER JOIN table2 On table2.mainTableId = main_table.id
...
Проблема в том, что я получаю много результатов назад, поскольку каждый результат в main_table
умножается на все результаты в table1
, table2
и т. Д.
Iхотел бы использовать только один SELECT
запрос, поскольку запрос базы данных 10 раз занимает много времени.
Получение 100 результатов из каждой таблицы достаточно для моих нужд, но попытка сделать следующее привела кошибка, что limit is not supported with a sub query
:
LEFT OUTER JOIN table1 WHERE id in (
SELECT id FROM table1 WHERE mainTableId = mainTable.id LIMIT 100
)
Я использую AWS Aurora.Как я могу улучшить этот запрос?