Общие > Базы данных

MySQL и LEFT JOIN

(1/2) > >>

Tryapkonator:
Есть 2 таблицы, таблица новостей и рейтинга к ним.
table news (id name text)
table reyt (id idn reyt)

Делаю
SELECT name, text, SUM(reyt.reyt) as reyt, COUNT(reyt.id) AS kol FROM news LEFT JOIN reyt ON reyt.idn=news.id GROUP by news.id ORDER BY news.id DESC

Но запрос выполняется достаточно медленно. Точнее он выполняется медленнее, чем если бы я сначала вытащил информацию о новости и только потом на ее основе рейтинг. Может я что-то не то делаю?

commander:
Tryapkonator
индексы на каких полях привинчены?

Tryapkonator:
Индексы в news на id только и в reyt на id и idn соответственно. На id везде примари, на idn в таблице reyt просто индекс

sarutobi:
Интересный запрос.... агрегатные функции вперемешку с простым выбором... Странно что он вообще хоть что то возвращает :)
Почему-то у меня выпадает что name и text не были использованы ни в аггрегировании, ни в группировке. Или это сейчас можно делать? :))

Tryapkonator:
А тогда как делать? Просто новостная таблица содержит 6000 полей, а при данном запросе, в запросе используется 130000 полей... ужас.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии