Общие > Базы данных
MySQL и LEFT JOIN
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 полей... ужас.
Навигация
Перейти к полной версии