technology4md
Новичок
LEFT JOIN не учитывает LIMIT
Здравствуйте.
Есть две таблицы.
models:
| id | name | brand |
+-----------+--------+--------+
|1 |astra | opel |
|1 |omega | opel |
....
|250000 |cadet | opel |
brands:
| id | code | name |
+-----------+--------+--------+
|1 |opel | Opel |
|1 |opel | Opel |
....
|1000 |opel | Opel |
В таблице models 250000 строк
Запрос:
SELECT t1.name,t2.name as brand FROM models as t1
LEFT JOIN brands as t2 on t2.code=t1.brand
where ... group by t1.id LIMIT 0,20
EXEC TIME - 1 minut
Если я меняю LIMIT 0,20 на LIMIT 0,10000
EXEC TIME точно такой-же: 1 minut
Я думаю что запрос с начала присваивает всем 250000 моделей brand_name и потом выбирает 20 из списка.
Если это так, как сделать чтобы LEFT JOIN работал только для 20 моделей.
Спасибо.
Здравствуйте.
Есть две таблицы.
models:
| id | name | brand |
+-----------+--------+--------+
|1 |astra | opel |
|1 |omega | opel |
....
|250000 |cadet | opel |
brands:
| id | code | name |
+-----------+--------+--------+
|1 |opel | Opel |
|1 |opel | Opel |
....
|1000 |opel | Opel |
В таблице models 250000 строк
Запрос:
SELECT t1.name,t2.name as brand FROM models as t1
LEFT JOIN brands as t2 on t2.code=t1.brand
where ... group by t1.id LIMIT 0,20
EXEC TIME - 1 minut
Если я меняю LIMIT 0,20 на LIMIT 0,10000
EXEC TIME точно такой-же: 1 minut
Я думаю что запрос с начала присваивает всем 250000 моделей brand_name и потом выбирает 20 из списка.
Если это так, как сделать чтобы LEFT JOIN работал только для 20 моделей.
Спасибо.