Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Медленный запрос для 2 больших таблиц 
:(
    Опции темы
polin11
Дата 30.6.2018, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 6.6.2015

Репутация: нет
Всего: нет



Есть 2 таблицы Table1 (1 млн записей) и Тable2 (10 млн записей)
Свзяь между таблицами один ко многим.
Нужно вытащить определнное колчичество записей, например 100 из Table1, 
следующим запросом:
Код

SELECT *
FROM Table1
WHERE Field1 IN (SELECT Field1 FROM Table2  WHERE Field2 = 'val1' GROUP BY Field1 )
AND Field2='val2'
ORDER BY Field3
LIMIT 100

Можно переписать так:
Код

SELECT *
FROM Table1
INNER JOIN Table2 ON Table1.Field1=Table2.Field1
WHERE Table2.Field2 = 'val1'
AND Table1.Field2='val2'
GROUP BY Table1.Field1
ORDER BY Table1.Field3
LIMIT 100


Но оба запроса выполняются медленно.
Хочется из вложенного запроса делать выборку не всей таблицы Table2 по фильтру Field2 = 'val1',
а только 100 записей, например 
Код

SELECT *
FROM Table1
WHERE Field1 IN (SELECT Field1 FROM Table2  WHERE Field2 = 'val1' GROUP BY Field1 LIMIT 100)
AND Field2='val2'
ORDER BY Field3

но так как есть условие Table1.Field2='val2', то этот запрос неверный. Может есть 
стандартное решение аналогичной  проблемы?
PM MAIL   Вверх
Google
  Дата 21.10.2018, 18:40 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0420 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.