Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Правильный запрос

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
RockeT
Отправлено: 28 Декабря, 2015 - 03:04:10
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




Всем здравствуйте.

Возник такой вопрос, как правильно составить запрос, выводивший всех пользователей, загрузивших только 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"])." - это выводит кол-во релизов у пользователя
 
 Top
SAD
Отправлено: 28 Декабря, 2015 - 08:41:20
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




Where n_t != 0

(Отредактировано автором: 28 Декабря, 2015 - 08:41:51)

 
 Top
Faraon-san
Отправлено: 28 Декабря, 2015 - 12:13:08
Post Id



Посетитель


Покинул форум
Сообщений всего: 318
Дата рег-ции: Сент. 2013  


Помог: 8 раз(а)




where n_t <> 0
 
 Top
RockeT
Отправлено: 28 Декабря, 2015 - 17:09:28
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




Спасибо за помощь, а куда именно вставить where n_t <> 0

При попытке вставить после FROM users и после torrents.owner = users.id выдало ошибку
 
 Top
Faraon-san
Отправлено: 28 Декабря, 2015 - 18:00:58
Post Id



Посетитель


Покинул форум
Сообщений всего: 318
Дата рег-ции: Сент. 2013  


Помог: 8 раз(а)




Попробуй так, на коленке писал, может чего не правильно.
CODE (SQL):
скопировать код в буфер обмена
  1. 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
 
 Top
RockeT
Отправлено: 28 Декабря, 2015 - 18:26:11
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




Faraon-san Спасибо большое. Работает)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB