public function procAllianceRanking($limit="") { $q = "SELECT " . TB_PREFIX . "alidata.name nazwa," . TB_PREFIX . "alidata.id sojid, ( SELECT COUNT( " . TB_PREFIX . "users.alliance ) FROM " . TB_PREFIX . "users WHERE " . TB_PREFIX . "users.alliance = sojid )uzytkownicy, ( SELECT sum(pop) FROM " . TB_PREFIX . "vdata WHERE owner = (SELECT id FROM " . TB_PREFIX . "users where alliance = sojid) ) populacja FROM " . TB_PREFIX . "alidata ORDER BY populacja DESC"; }
która zwraca mi błąd: Subquery returns more than 1 row, mogę zrobić to w ten sposób:
public function procAllianceRanking($limit="") { $q = "SELECT " . TB_PREFIX . "alidata.name nazwa," . TB_PREFIX . "alidata.id sojid, ( SELECT COUNT( " . TB_PREFIX . "users.alliance ) FROM " . TB_PREFIX . "users WHERE " . TB_PREFIX . "users.alliance = sojid )uzytkownicy, ( SELECT sum(pop) FROM " . TB_PREFIX . "vdata WHERE owner = (SELECT id FROM " . TB_PREFIX . "users where alliance = sojid LIMIT 1) ) populacja FROM " . TB_PREFIX . "alidata ORDER BY populacja DESC"; }
Ale chciałbym, żeby zliczyła mi pop ze wszystkich użytkowników, i tu jest problem, jak to zrobić bez wyżej wymienionego błędu, może jakaś funkcja w mysqlu albo coś, proszę o pomoc.
Pozdrawiam