Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   запрос подвисает :'( (https://javascript.ru/forum/server/12487-zapros-podvisaet-%27.html)

cuberboy 20.10.2010 11:12

запрос подвисает :'(
 
таблица порядка 40 000 записей
имеет 19 полей, из них айди ключик, поле champ проиндексировано.

делаю запрос к таблице
select champ from sob where left(sob.time,10)='2010-10-20' group by champ

всё нормально делается за 0,0010 сек

но мне надо

select champ from sob where champ in( select champ from sob where left(sob.time,10)='2010-10-20' group by champ)

пробывал делать алиес(думал косяк в названиях) не помогло

cuberboy 20.10.2010 12:35

попробывал сделать запрос
select champ from sob where left(sob.time,10)='2010-10-20' group by champ

далее цикл по нему и второй запрос select champ from sob where champ=рез1

работает как надо за пару секунд. чтож такое братцы..вроде как запрос в цикле зло!!!!!!

DooMer 20.10.2010 17:41

почитайте про join и поймете как ускорить

subzey 20.10.2010 19:30

Цитата:

select champ from sob where champ in( select champ from sob where …
«Не верь в себя — верь в мою веру в тебя!»
— Камина, Гуррен-Лаганн

Gvozd 20.10.2010 22:54

subzey,
Гуррен Лаган?

cuberboy 21.10.2010 09:06

select champ from sob
left join sob as q on q.champ=sob.champ and left(q.time,10)='2010-10-20'


это типа такой джоин? - пробывал, долго. циклом быстрее!!!!!!

не ясно фигли трудного взять в подзапросе и птом выбрать из главного..ох как не ясно :'((((

cuberboy 21.10.2010 09:21

Цитата:

Сообщение от DooMer (Сообщение 75130)
почитайте про join и поймете как ускорить

ой как лажанулся и веть пробывал тока криво, спасибо!!!!

а с IN почему не катит????что там за ограничение такое?

e1f 21.10.2010 18:31

Что-то ближе к вечеру соображается все хуже. Чем
Цитата:

select champ from sob where champ in( select champ from sob where left(sob.time,10)='2010-10-20' group by champ)
отличается от
Цитата:

select champ from sob where left(time,10)='2010-10-20' group by champ

subzey 21.10.2010 19:56

e1f,
Временем выполнения

cuberboy 22.10.2010 10:59

e1f, в первом случае выведутся все записи у которых поле чамп хотя бы раз засветилось в указаную дату.

во втором только те записи у которых дата соответствует указанной.


Часовой пояс GMT +3, время: 16:24.