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




MySQL.RU - Webboard



Вернуться
опимизировать запрос (Serg) 10/03/2016 - 12:28:01
      Re: опимизировать запрос (Akina) 10/03/2016 - 13:56:07
      Re: опимизировать запрос (Serg) 11/03/2016 - 13:47:33
      Re: опимизировать запрос (Akina) 11/03/2016 - 18:07:15
      Re: опимизировать запрос (Akina) 11/03/2016 - 18:09:12

> Original message text:
> From: Serg - 10/03/2016 - 12:28:01
> Subject:опимизировать запрос
> -----------------
> Есть смайлики, которые пользователи шлют друг другу, нужно получить не только смайлик и пользовательский айди, но и сколько смайликов получил этот пользователь от других.
> сейчас так
> SELECT user_id as ID, stamp, time,(SELECT count(ur2.user_id) AS count FROM wp_user_relationship ur2 WHERE ur2.recipient_id = ur.user_id) as likes FROM wp_user_relationship ur WHERE recipient_id=1492 AND recipient_id NOT IN (4761,3092,3653) ORDER BY time DESC;
> Оно работет, но интуиция подсказывает, что можно красивее, интерес академический, подскажите куда копать.
>


From: Akina - 11/03/2016 - 18:07:15
Subject:опимизировать запрос
-----------------
Да, такой запрос лучше. Потому что он гарантированно не будет многократно выполнять подзапрос. Потому что он может эффективно использовать индексы.

Хотя я бы его переписал в декарт - суть та же, а текст имхо логичнее.

SELECT ur.user_id ID, ur.stamp, ur.time `date`, COUNT( ur2.user_id ) likes
FROM wp_user_relationship ur, wp_user_relationship ur2
WHERE ur.user_id = ur2.recipient_id
AND ur.recipient_id =1492
AND ur.user_id NOT IN ( 4761, 3092, 3653 )
GROUP BY ur.user_id
ORDER BY ur.time DESC


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

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

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



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