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




MySQL.RU - Webboard



Вернуться
Подскажите (Толик) 12/10/2005 - 22:21:09
      Re: Подскажите (Толик) 13/10/2005 - 01:23:20
      Re: Подскажите (Толик) 13/10/2005 - 01:27:48
      Re: Какое извращенное представление об sql (Dubrovsky) 13/10/2005 - 08:04:35
      Re: Какое извращенное представление об sql (Толик) 13/10/2005 - 12:25:41
      Re: Подскажите (Толик) 13/10/2005 - 18:19:36
      Re: Подскажите (Dinky) 13/10/2005 - 20:03:41
      Re: Подскажите (Толик) 13/10/2005 - 20:46:37
      Re: Вроде разобрался (Толик) 13/10/2005 - 21:00:16
      Re: Нет, не разобрался :) (Толик) 13/10/2005 - 21:13:04
      Re: RTFM (Dinky) 13/10/2005 - 21:48:42

> Original message text:
> From: Толик - 12/10/2005 - 22:21:09
> Subject:Подскажите
> -----------------
> Почему не работает такой запрос:
> SELECT (select name from films where id=film_id), @a:=count(*), @f:=film_id, @b:=(select count(*) from files where film_id=@f), @a/@b as count FROM download group by film_id order by count desc limit 30
>
>


From: Толик - 13/10/2005 - 01:23:20
Subject:Подскажите
-----------------
Уточнаю. Есть таблицы:
CREATE TABLE `download` (
`id` int(10) unsigned NOT NULL auto_increment,
`film_id` int(10) unsigned NOT NULL default '0',
`file_id` int(10) unsigned NOT NULL default '0',
`remote_ip` varchar(16) NOT NULL default '',
`date_time` datetime NOT NULL default '0000-00-00 00:00:00',
`type` varchar(5) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=InnoDB;
DROP TABLE IF EXISTS `files`;
CREATE TABLE `files` (
`id` int(10) unsigned NOT NULL auto_increment,
`film_id` int(10) unsigned NOT NULL default '0',
`path` varchar(200) NOT NULL default '',
`size` varchar(45) NOT NULL default '',
`fps` int(10) unsigned NOT NULL default '0',
`duration` int(10) unsigned NOT NULL default '0',
`width` int(10) unsigned NOT NULL default '0',
`height` int(10) unsigned NOT NULL default '0',
`v_codec` varchar(45) NOT NULL default '',
`a_codec` varchar(45) NOT NULL default '',
`a_mode` varchar(45) NOT NULL default '',
`a_brate` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=InnoDB;
CREATE TABLE `films` (
`id` int(10) unsigned NOT NULL auto_increment,
`name` varchar(255) NOT NULL default '',
`logo_path` varchar(100) NOT NULL default '',
`proizvoditel` varchar(100) NOT NULL default '',
`god` varchar(45) NOT NULL default '',
`country` varchar(45) NOT NULL default '',
`rejiser` varchar(45) NOT NULL default '',
`janr` varchar(100) NOT NULL default '',
`v_rolyah` text NOT NULL,
`opisanie` text NOT NULL,
`add_date` date NOT NULL default '0000-00-00',
PRIMARY KEY (`id`)
) TYPE=InnoDB;


В таблицу download записываеться каждая закачка файла.
В таблице films фильмы и описание.
В таблице files файлы с ид фильма. Потому что фильм может быть из нескольких частей.
Вот такой запрос выдает мне самые популярные фильмы по закачке за определенный период.
SELECT (select name from films where id=film_id),film_id, if((select @a=count(*) from download where film_id=film_id)>1,count(*)/@a,count(*)) as count FROM download where date_time>'".$from_date."' group by film_id order by count desc limit ".$limit

Но глюк в том что если у фильма несколько частей, то оно считает количество скачек всех частей в суме, вобщем получаеться что в рейтинге высшие места занимают фильмы где больше частей.

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




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

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

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



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