Autor | Zpráva | ||
---|---|---|---|
vecerapl Profil |
#1 · Zasláno: 22. 3. 2011, 19:48:06 · Upravil/a: vecerapl
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 |
#2 · Zasláno: 22. 3. 2011, 20:11:42
počet položek v jiné tabulce navíc tam bude order by.
|
||
vecerapl Profil |
#3 · Zasláno: 22. 3. 2011, 22:11:37 · Upravil/a: vecerapl
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 |
#4 · Zasláno: 22. 3. 2011, 22:16:35
vecerapl:
a mysql_error ? Tipuji chybu kvůli blíže nespecifikovanému id , které se nechází v obou tabulkách.
|
||
vecerapl Profil |
#5 · Zasláno: 22. 3. 2011, 22:19:40 · Upravil/a: vecerapl
Ano.
Column 'id' in on clause is ambiguous Teď co s tím, aby to fungovalo? |
||
Bertram Profil |
#6 · Zasláno: 22. 3. 2011, 23:06:27
Při nejednoznačnosti názvů sloupců používejte názevTabulky.názevSloupce
např: user.id = ide_user |
||
vecerapl Profil |
#7 · Zasláno: 22. 3. 2011, 23:15:41
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 |
#8 · Zasláno: 23. 3. 2011, 00:24:06 · Upravil/a: ninja
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; |
||
Časová prodleva: 13 let
|
0