parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

Maxx 06.06.2008 04:54 / 06.06.2008 05:04

Ну тут для начала неплохо бы базу привести в порядок.
в таблице `k_site` видно, что site_id автоинкрементное числовое поле, поэтому в stat_ya у site_id тип должен быть такой же, т.е. int(4) not null. + в обеих таблицах они скорее всего unsigned (т.е. положительные). Default 0 писать не нужно, так как для int not null ноль и так значение по умолчанию. Тоже самое касается (подозреваю) word_id.

Сам запрос я бы написал так:
SELECT k_site.site_id as id, k_site.domain as domain, AVG(stat_ya.rate) as rate 
FROM stat_ya JOIN k_site ON stat_ya.site_id = k_site.site_id 
WHERE stat_ya.word_id = 14 
AND stat_ya.rate_date > '2008-06-05 01:18:50' 
GROUP BY stat_ya.site_id 
ORDER BY NULL
и тогда смотреть.
Когда приводите запросы - форматируйте их хотя бы слегка. Это не код который можно скопировать и проверить у себя. Приходится бегать глазами по длинной строке.

UPD. Думаю что так как один индекс у вас ушел на объединение таблиц (этого в первом посте не упоминалось), то терерь вам надо добавить еще один индекс, либо word_id,rate_date либо rate_date,word_id в зависимости от того какие собственно данные у вас в таблицах. Попробуйте оба и посмотрите результат