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




MySQL.RU - Webboard



Вернуться
Подскажите как можно ускорить такой запрос (Толик) 16/06/2006 - 11:11:42
      Re: Подскажите как можно ускорить такой запрос (bac) 16/06/2006 - 14:47:25
      Re: Sorry ... как можно ускорить такой запрос (bac) 16/06/2006 - 14:50:27
      Re: Sorry ... как можно ускорить такой запрос (Dinky) 16/06/2006 - 20:19:10
      Re: Sorry ... как можно ускорить такой запрос (DiGiTAL) 16/06/2006 - 21:18:00
      Re: Sorry ... как можно ускорить такой запрос (Толик) 17/06/2006 - 10:26:22
      Re: Sorry ... как можно ускорить такой запрос (Dinky) 17/06/2006 - 19:45:29
      Re: Sorry ... как можно ускорить такой запрос (Толик) 18/06/2006 - 00:34:12
      Re: Sorry ... как можно ускорить такой запрос (Dinky) 18/06/2006 - 22:25:51
      Re: Sorry ... как можно ускорить такой запрос (Толик) 19/06/2006 - 11:02:14

> Original message text:
> From: Толик - 16/06/2006 - 11:11:42
> Subject:Подскажите как можно ускорить такой запрос
> -----------------
> Подскажите как можно ускорить такой запрос, ато очень долго работает...
>
> select humans.id, humans.name, humans.orig_name from humans where (select count(*) from humans_films where humans_films.human_id=humans.id)=0
>


From: Толик - 17/06/2006 - 10:26:22
Subject:Sorry ... как можно ускорить такой запрос
-----------------
Правильный ответ - показывает одну запись. В таблице humans гдето 3 тысячи записей, а в таблице humans_films 4-5 тысяч.

SELECT humans.id, humans.name, humans.orig_name
FROM humans
WHERE (
SELECT count( * )
FROM humans_films
WHERE humans_films.human_id = humans.id
) =0

Показывает записи 0 - 0 (1 всего, Запрос занял 26.4944 сек)


SELECT humans.id, humans.name, humans.orig_name
FROM humans
LEFT JOIN humans_films ON humans_films.human_id = humans.id
WHERE humans_films.human_id IS NULL

Показывает записи 0 - 0 (1 всего, Запрос занял 12.2567 сек)


SELECT humans.id, humans.name, humans.orig_name
FROM humans
LEFT JOIN humans_films
USING humans_films.human_id = humans.id
WHERE humans_films.human_id IS NULL

Ответ MySQL:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'humans_films . human_id = humans . id WHERE humans_films . human_id IS NULL
L' at line 1

SELECT humans.id, humans.name, humans.orig_name, COUNT( humans_films.human_id ) AS hcnt
FROM humans
LEFT JOIN humans_films ON humans_films.human_id = humans.id
WHERE hcnt =0
OR hcnt = NULL ;

Ответ MySQL:
#1054 - Unknown column 'hcnt' in 'where clause'

Спасибо второй запрос в два раза быстрее работает...


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

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

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



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