Autor Zpráva
vecerapl
Profil
Mám dvě tabulky user a stats.

Tabulka user: id, name, mail, time
Tabulka stats: id, ide_user, ip, time

Jde mě o vytvoření mySQL dotazu tak, abych mohl seřadit name z user dle celkového počtu zápisu ve stats dle ide_user.stats=id.user. Přeloženo do češtiny...potřebuji prostě seřadit uživatele dle toho, kolikrát použili službu.
Alphard
Profil
počet položek v jiné tabulce navíc tam bude order by.
vecerapl
Profil
Z toho tedy moc chytrý nejsem :(

Zkusil jsem to dle toho příspěvku, ale nefunguje to:
SELECT *, count(*) FROM user LEFT JOIN stats ON id=ide_user group by user.id
panther
Profil
vecerapl:
a mysql_error? Tipuji chybu kvůli blíže nespecifikovanému id, které se nechází v obou tabulkách.
vecerapl
Profil
Ano.
Column 'id' in on clause is ambiguous

Teď co s tím, aby to fungovalo?
Bertram
Profil
Při nejednoznačnosti názvů sloupců používejte názevTabulky.názevSloupce
např: user.id = ide_user
vecerapl
Profil
Povedlo se, avšak řazení dle stats tam není. Přes ORDER BY, ale jak? Pokud dám ORDER BY stats.id, tak se to neseřadí dle celkového počtu.
ninja
Profil
SELECT user.*, COUNT(stats.id) AS pocet FROM user LEFT JOIN stats ON user.id=stats.ide_user GROUP BY user.id ORDER BY pocet DESC;

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: