Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Help query


Автор: skifoz 14.3.2007, 18:02
Всем привет.

Есть вообщем то 2 таблицы

это `host` и `history`

в таблице `host` у нас находятся название хостов
а в таблице `history` история о количестве кликов

Вид этих таблиц примерно таков

host

host
1.ru
2.com
3.info

history

host|date|domen|count

1.ru|1|www|10
1.ru|1|info|11
1.ru|2|www|10
1.ru|3|www|15
1.ru|3|info|9



Мне нужно сделать выборку из двух таблиц такую чтобы
на странице можно было бы вывести таблицу хостов а справа от них последняя дата истории и количество кликов

я беру этот запрос вот так

Код

SELECT
  `host`.`host` as `host`, 
  COUNT(`history`.`count`) as `domain`,
  SUM(`history`.`count`) as `click`,
  `history`.`date` AS `date`
FROM
  `host`,
  `history`
WHERE
  `history`.`host` = `host`.`host`
GROUP BY `history`.`date`


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

то есть выдавалась информация вот такая

host|domain|click|date

1.ru|2|24|3

А по моему запросу получается что 

1.ru|2|21|1

Если кто знает плизз помогите...


Автор: Бонифаций 14.3.2007, 18:25
навскидку не проверяя

Код


select h.host, sumt(i.count) as clikov, max (i.date) as maxdate from host h left join history i on i.host=h.host group by h.host


Автор: skifoz 16.3.2007, 14:41
Так он сумму всех посчитает а мне нужно только за максимальную дату,  не просто нужно взять эту дату, а именно чтобы все поля которые мы берем соответствовали ей

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)