我有一个主表,它通过一对多关系与其他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
等中的所有结果。
我只想使用一个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。如何改进此查询?
答案 0 :(得分:1)
i
对于第二个问题,您可以从其他表中获取100行,然后加入它们!
SELECT *
FROM main_table
LEFT OUTER JOIN table1 ON main_table.id = table1.mainTableId
LEFT OUTER JOIN table2 ON main_table.id = table2.mainTableId
...