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




MySQL.RU - Webboard



Вернуться
Помогите оптимизировать, а также AND -> JOIN (s.klimansky) 26/12/2008 - 13:51:08
      Re: Помогите оптимизировать, а также AND -> JOIN (s.klimansky) 26/12/2008 - 13:58:33
      Re: Помогите оптимизировать, а также AND -> JOIN (Colobon) 06/01/2009 - 17:38:05
      Re: Помогите оптимизировать, а также AND -> JOIN (s.klimansky) 12/01/2009 - 16:35:21

> Original message text:
> From: s.klimansky - 26/12/2008 - 13:51:08
> Subject:Помогите оптимизировать, а также AND -> JOIN
> -----------------
> Задание звучит так: выбрать категории товаров, в которых нет товаров, и которые не содержат подкатегорий.
>
> Выбираю поля из t_ntovars (категории), которые не упоминается в таблице t_tovars (товары) и в самой t_ntovars (категории) таким выражением:
> SELECT * FROM t_ntovars WHERE cat_id NOT IN (SELECT cat_id from t_tovars) AND cat_id IN (SELECT cat_id from t_ntovars WHERE cat_id NOT IN (SELECT parent_id FROM t_ntovars))
>
> Но только оно работает долго. Смысла JOIN никак не могу понять, а тут ещё и выборка id, _не_ упоминающихся в другой таблице (OUTER JOIN, что-ли?)
>


From: Colobon - 06/01/2009 - 17:38:05
Subject:Помогите оптимизировать, а также AND -> JOIN
-----------------
Если уж охота через JOIN то можешь так:
SELECT tn.*
FROM t_ntovars tn
LEFT OUTER JOIN t_tovars AS tt on tn.cat_id = tt.cat_id
LEFT OUTER JOIN t_ntovars AS tn2 ON tn.cat_id = tn2.parent_id
WHERE tt.cat_id IS NULL
AND tn2.parent_id IS NULL

Скорости это не добавит правда, тож самое будет. Поставь лучше индексы на cat_id в t_tovars и на parent_id в t_ntovars


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

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

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



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