Autor | Zpráva | ||
---|---|---|---|
oBc Profil * |
#1 · Zasláno: 12. 11. 2007, 16:58:39
"SELECT f.*,
k.count(id) FROM users_fotky f LEFT JOIN users_fotky_kom k on k.idfotka = f.id WHERE f.iduser =5 "); Neviem ako to ma ten k.count(id) tam byt napisany. Wobec tento select neprejde. Tymto chce, zistim pocet komentarov k fotke. Ako to ma byt? |
||
Kajman_ Profil * |
#2 · Zasláno: 12. 11. 2007, 17:03:16
zkuste
SELECT f.*, (select count(*) from users_fotky_kom k where k.idfotka = f.id) komentaru FROM users_fotky f WHERE f.iduser =5 |
||
radozaj Profil |
#3 · Zasláno: 12. 11. 2007, 17:03:44 · Upravil/a: radozaj
Neviem, či som pochopil, dám ti môj príklad, ako zistiť počet komentárov k fotke:
SELECT count(*) FROM user_fotky HAVING iduser=5; |
||
oBc Profil * |
#4 · Zasláno: 12. 11. 2007, 17:09:28
SELECT f.*,
(select count(*) from users_fotky_kom k where k.idfotka = f.id) komentaru FROM users_fotky f WHERE f.iduser =5 Takto to ja nechcem, musi tam byt JOIN |
||
oBc Profil * |
#5 · Zasláno: 12. 11. 2007, 17:11:12
SELECT count(*) FROM user_fotky HAVING iduser=5;
Tak toto v ziadnom pripade. Ide o to, ze zistijem vsetky infotmacie o fotke v users_fotky ale potom mam tabulku users_fotky_kom kde su komentare (id fotka) chapete? Ako to teda mam dat? |
||
radozaj Profil |
#6 · Zasláno: 12. 11. 2007, 17:22:38
Ak treba zistiť počet komentárov k fotke, spravil by som to takto:
SELECT id_fotka,count(*) as 'spolu' FROM users_fotky_kom GROUP BY id_fotka; |
||
oBc Profil * |
#7 · Zasláno: 12. 11. 2007, 17:30:11
ja potrebujem ziskat vsetky informacie o fotke a+ pocet komentarov v tabulke komentare, akO?
|
||
radozaj Profil |
#8 · Zasláno: 12. 11. 2007, 17:50:48 · Upravil/a: radozaj
A čo takto to k. dať k id ?
"SELECT f.*, count(k.id) FROM users_fotky f LEFT JOIN users_fotky_kom k on k.idfotka = f.id WHERE f.iduser =5 "); Ale ešte by som tam dorobil ten GROUP BY |
||
oBc Profil * |
#9 · Zasláno: 12. 11. 2007, 18:53:11
To tiez nejde, mozes si to vyskusat...
tak ako sa to ma vlastne spravit? |
||
radozaj Profil |
#10 · Zasláno: 12. 11. 2007, 19:42:58
Nefunguje? Tak potom takto:
"SELECT users_fotky.*, count(users_fotky_kom.id) Som si to aj skúšal na mojom príklade a funguje to. Takže ak to nepôjde, chyba už môže byť len v názvoch. To je to moje prevedenie: SELECT kategorie. *, count(recepty.recept) Je to podobný príklad: hľadám počet receptov v kategórii pre kategóriu 10, pričom vidím celý výpis (vlastností) kategórii. PS. Už to musí fungovať |
||
oBc Profil * |
#11 · Zasláno: 12. 11. 2007, 20:39:34
OK ciastocne funguje, len este ked dam nakoniec
. . . GROUP BY users_fotky.id ORDER by poradie LIMIT ".$strana_zobraz .", ".$pocet_jedna_stranka.""); tak to vobec nereaguje a potom otazka: naco je dobre to: GROUP BY users_fotky.id ?? dIKY MOC |
||
Kajman_ Profil * |
#12 · Zasláno: 12. 11. 2007, 20:47:45
tak to vobec nereaguje
Ani není nic v mysql_error? Třeba, že poradi je v obou tabulkách neví, které poradi myslíte? |
||
oBc Profil * |
#13 · Zasláno: 12. 11. 2007, 20:48:58
Uz to ide chyba bola, ze som mal INNER JOIN, dal som LEFT a ide :)
vazne nechapem aky je medzi tym rozdiel aj ked mi to uz niektory vysvetlovali ale furt to poriadne nechapem..:(( a este ta posledna otazka: naco je dobre to: GROUP BY users_fotky.id ?? |
||
Kajman_ Profil * |
#14 · Zasláno: 12. 11. 2007, 20:53:42
|
||
radozaj Profil |
#15 · Zasláno: 13. 11. 2007, 16:35:03 · Upravil/a: radozaj
oBc
naco je dobre to: GROUP BY users_fotky.id ?? vysvetlím ti to na jednoduchom príklade: mám takúto tabuľku: ----------------------- | DEN | JAZYK | ----------------------- | 1 | MySQL | ----------------------- | 1 | PHP | ----------------------- | 2 | MySQL | ----------------------- | 2 | JavaScript | ----------------------- | 2 | Pascal | ----------------------- | 3 | XHTML | ----------------------- A chcem zistiť, koľko jazykov som mal doteraz: SELECT count(jazyk) as 'spolu' FROM tabulka; Ale teraz chcem vypísať počet jazykov v jednotlivých dňoch: SELECT den,count(jazyk) as 'spolu' FROM tabulka GROUP BY den; Takže, neviem to odborne vysvetliť, ale keď používaš funkcie (sum, count, max, min, avg ...) a chceš ich robiť v jednej tabuľke zvlášť pre rovnakú vlastnosť, použiješ GROUP BY. |
||
Časová prodleva: 17 let
|
0