Всем здравствуйте.
Возник такой вопрос, как правильно составить запрос, выводивший всех пользователей, загрузивших только 1 и более релизов
$res = dabs::query("SELECT users.added, users.last_access, users.id, users.username, users.class, users.downloaded, users.uploaded, (SELECT COUNT(DISTINCT torrents.id) FROM torrents WHERE torrents.owner = users.id) AS n_t FROM users GROUP BY id ORDER BY n_t DESC LIMIT 50") or sqlerr(__FILE__,__LINE__);
Здесь стоит лимит 50, даже если пользователей загрузивших хотя бы 1 релиз, скажем 10, то остальные 40 будут по нулям, а нужно чтоб юзеры не загрузившие релиз, отсеились
".number_format($row["n_t"])." - это выводит кол-во релизов у пользователя
1. RockeT - 28 Декабря, 2015 - 03:04:10 - перейти к сообщению
2. SAD - 28 Декабря, 2015 - 08:41:20 - перейти к сообщению
Where n_t != 0
3. Faraon-san - 28 Декабря, 2015 - 12:13:08 - перейти к сообщению
where n_t <> 0
4. RockeT - 28 Декабря, 2015 - 17:09:28 - перейти к сообщению
Спасибо за помощь, а куда именно вставить where n_t <> 0
При попытке вставить после FROM users и после torrents.owner = users.id выдало ошибку
При попытке вставить после FROM users и после torrents.owner = users.id выдало ошибку
5. Faraon-san - 28 Декабря, 2015 - 18:00:58 - перейти к сообщению
Попробуй так, на коленке писал, может чего не правильно.
CODE (SQL):
скопировать код в буфер обмена
скопировать код в буфер обмена
- SELECT * FROM (SELECT `users`.`added`, `users`.`last_access`, `users`.`id`, `users`.`username`, `users`.`class`, `users`.`downloaded`, `users`.`uploaded`, COUNT(DISTINCT `torrents`.`id`) AS `n_t` FROM `users` LEFT JOIN `torrents` ON `torrents`.`owner` = `users`.`id` GROUP BY `users`.`id`) AS `tbl` WHERE `n_t` > 0 ORDER BY `n_t` DESC LIMIT 50