







|
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,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
34842
|
|