![]() |
Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день.
Прошу помочь с составлением двух запросов.
Таблицы:
CREATE TABLE IF NOT EXISTS `xbtit_users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(40) NOT NULL DEFAULT '',
`password` varchar(40) NOT NULL DEFAULT '',
`id_level` int(10) NOT NULL DEFAULT '1',
`random` int(10) DEFAULT '0',
`email` varchar(50) NOT NULL DEFAULT '',
`language` tinyint(4) NOT NULL DEFAULT '1',
`style` tinyint(4) NOT NULL DEFAULT '1',
`joined` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`lastconnect` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`lip` bigint(11) DEFAULT '0',
`downloaded` bigint(20) DEFAULT '1073741824',
`uploaded` bigint(20) DEFAULT '5368709120',
`avatar` varchar(200) DEFAULT NULL,
`avatar_upload` enum('yes','no') NOT NULL DEFAULT 'no',
`avatar_upload_name` varchar(60) NOT NULL,
`pid` varchar(32) NOT NULL DEFAULT '',
`flag` tinyint(1) unsigned NOT NULL DEFAULT '0',
`topicsperpage` tinyint(3) unsigned NOT NULL DEFAULT '15',
`postsperpage` tinyint(3) unsigned NOT NULL DEFAULT '15',
`torrentsperpage` tinyint(3) unsigned NOT NULL DEFAULT '15',
`cip` varchar(15) DEFAULT NULL,
`time_offset` varchar(4) NOT NULL DEFAULT '0',
`temp_email` varchar(50) NOT NULL DEFAULT '',
`smf_fid` int(10) NOT NULL DEFAULT '0',
`dlrandom` varchar(8) DEFAULT '0',
`age` int(9) NOT NULL DEFAULT '0',
`gender` int(9) NOT NULL DEFAULT '2',
`toptracker_user_votetime` date NOT NULL DEFAULT '0000-00-00',
`commentpm` enum('true','false') NOT NULL DEFAULT 'true',
`retrackerstr` enum('0','1') NOT NULL DEFAULT '1',
`seedbonus` decimal(12,6) NOT NULL DEFAULT '0.000000',
`admemailsend` enum('true','false') NOT NULL DEFAULT 'true',
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`),
KEY `id_level` (`id_level`),
KEY `pid` (`pid`),
KEY `cip` (`cip`),
KEY `avatar_upload` (`avatar_upload`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=16363 ;
CREATE TABLE IF NOT EXISTS `xbtit_files` (
`info_hash` varchar(40) NOT NULL DEFAULT '',
`filename` varchar(250) NOT NULL DEFAULT '',
`url` varchar(250) NOT NULL DEFAULT '',
`info` varchar(250) NOT NULL DEFAULT '',
`data` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`size` bigint(20) NOT NULL DEFAULT '0',
`comment` text,
`category` int(10) unsigned NOT NULL DEFAULT '6',
`genres` varchar(50) NOT NULL,
`external` enum('yes','no') NOT NULL DEFAULT 'no',
`announce_url` varchar(100) NOT NULL DEFAULT '',
`uploader` int(10) NOT NULL DEFAULT '1',
`lastupdate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`anonymous` enum('true','false') NOT NULL DEFAULT 'false',
`lastsuccess` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`dlbytes` bigint(20) unsigned NOT NULL DEFAULT '0',
`seeds` int(10) unsigned NOT NULL DEFAULT '0',
`leechers` int(10) unsigned NOT NULL DEFAULT '0',
`finished` int(10) unsigned NOT NULL DEFAULT '0',
`lastcycle` int(10) unsigned NOT NULL DEFAULT '0',
`lastSpeedCycle` int(10) unsigned NOT NULL DEFAULT '0',
`speed` bigint(20) unsigned NOT NULL DEFAULT '0',
`bin_hash` blob NOT NULL,
`image` varchar(255) NOT NULL,
`screen1` varchar(255) NOT NULL,
`screen2` varchar(255) NOT NULL,
`screen3` varchar(255) NOT NULL,
`sticky` enum('0','1') NOT NULL DEFAULT '0',
`imdb` varchar(10) NOT NULL DEFAULT '0',
`recomend` enum('0','1') NOT NULL DEFAULT '0',
`kinopoisk` varchar(10) NOT NULL DEFAULT '0',
`reseed` int(9) NOT NULL DEFAULT '0',
`moder` enum('um','bad','ok') NOT NULL DEFAULT 'um',
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`info_hash`),
UNIQUE KEY `id_2` (`id`),
KEY `filename` (`filename`),
KEY `category` (`category`),
KEY `uploader` (`uploader`),
KEY `bin_hash` (`bin_hash`(20)),
KEY `id` (`id`),
FULLTEXT KEY `filename_index` (`filename`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3288 ;
CREATE TABLE IF NOT EXISTS `xbtit_files_thanks` (
`infohash` char(40) NOT NULL DEFAULT '0',
`userid` int(11) NOT NULL DEFAULT '0',
KEY `infohash` (`infohash`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;Описание словами:
users - таблица с пользователями
files - таблица с раздачами
files_thanks - таблица хранит id пользователей ,сказавших спасибо для конкретной раздачи
Запросы:
1. вывести первые 10 записей из таблицы users, отсортированных по убыванию общего количества user.id = files.uploader
Иными словами вывести 10 пользователей имеющих наибольшее количество раздач, т.е. являющихся аплоадерами в раздаче
2. Тоже самое но сортировать по общему количеству полученных "спасибо" для всех раздач в которых пользователь является аплоадером
Надеюсь объяснил достаточно понятно. Если будет нужно, то постараюсь переформулировать
Неактивен

1.
Неактивен
Спасибо. Всё работает.
Неактивен