Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Помогите оптимизировать/упростить запросы(+) (D_K) 18/07/2006 - 18:42:40
      Re: Помогите оптимизировать/упростить запросы(+) (Dinky) 18/07/2006 - 23:19:13
      Re: Помогите оптимизировать/упростить запросы(+) (D_K) 19/07/2006 - 11:14:46
      Re: Помогите оптимизировать/упростить запросы(+) (Dinky) 19/07/2006 - 19:42:54

> Original message text:
> From: D_K - 18/07/2006 - 18:42:40
> Subject:Помогите оптимизировать/упростить запросы(+)
> -----------------
> TRUNCATE TABLE tmp;
> REPLACE INTO tmp (item_id) SELECT item_id FROM catalog GROUP BY item_id;
>
> UPDATE tmp
> SET store = (SELECT sum(st.count)
> FROM st
> WHERE (tmp.item_id = st.item_id)
> GROUP BY st.item_id);
>
> UPDATE tmp
> SET virtual =(SELECT sum(vt.count)
> FROM vt
> WHERE (tmp.item_id = vt.item_id)
> GROUP BY vt.item_id)
>
> Комплекс запросов выполняет то что нужно, но хотелось бы что-то попроще и по красивиее. И если возможно, то в одном запросе
>


From: Dinky - 18/07/2006 - 23:19:13
Subject:Помогите оптимизировать/упростить запросы(+)
-----------------
TRUNCATE TABLE tmp;
INSERT INTO tmp (item_id, store, virtual)
SELECT item_id, sum(st.count), sum(vt.count)
FROM catalog LEFT OUTER JOUN st ON catalog.item_id=st.item_id
LEFT OUTER JOUN vt ON catalog.item_id=vt.item_id
GROUP BY item_id;

если в st и в vt гарантировно есть записи на каждый айтем, то можно заменить
LEFT OUTER на INNER ;)
--
Dmitry


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
29189



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |