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




MySQL.RU - Webboard



Вернуться
Вложеные запросы тормозят? (ita) 26/10/2006 - 17:25:10
      Re: Вложеные запросы тормозят? (Cотомайор) 27/10/2006 - 10:30:45
      Re: Вложеные запросы тормозят? (WebGirl) 28/10/2006 - 22:29:04
      Re: Вложеные запросы тормозят? (bac) 01/11/2006 - 20:57:52
      Re: Сорри Вложеные запросы тормозят? (bac) 01/11/2006 - 21:53:43

> Original message text:
> From: ita - 26/10/2006 - 17:25:10
> Subject:Вложеные запросы тормозят?
> -----------------
> есть 2 таблицы,
>
> cards
> +---------------+------------------+------+-----+---------+----------------+
> | Field | Type | Null | Key | Default | Extra |
> +---------------+------------------+------+-----+---------+----------------+
> | id | int(11) unsigned | NO | PRI | NULL | auto_increment |
> | cid | int(11) | NO | | 0 | |
> | date_activ | int(11) | NO | | 0 | |
> | date_from | int(11) | NO | | 0 | |
> | date_to | int(11) | NO | | 0 | |
> | autor | tinyint(2) | NO | | 0 | |
> +---------------+------------------+------+-----+---------+----------------+
>
> client
> +-----------+------------------+------+-----+---------+----------------+
> | Field | Type | Null | Key | Default | Extra |
> +-----------+------------------+------+-----+---------+----------------+
> | id | int(11) unsigned | NO | PRI | NULL | auto_increment |
> | name | char(50) | NO | | | |
> +-----------+------------------+------+-----+---------+----------------+
>
> в каждой из таблиц примерно по 2000 записей, так вот
> SELECT client.id FROM client WHERE client.id in (SELECT cards.cid FROM cards WHERE date_activ!=0 GROUP BY cid);
>
> запрос должен вернуть всех клиентов у которых есть карты либо всех у кого нет карт (client.id not in)
>
> запрос выполняется за 9 секунд.
> отношение между таблицами один к многим. client к cards
>
>
>


From: bac - 01/11/2006 - 21:53:43
Subject:Сорри Вложеные запросы тормозят?
-----------------
Так будет правильно
select `client`.`id`, `card`.`cid` from `client` left join `card` on `client`.`id`=`card`.`cid` where cid is not null and date_activ!=0 GROUP BY `client`.`id`


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

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

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



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