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