| Mysql query ne deluje pravilno | ||
|---|---|---|
|
thai
10. jul 2015 09:28:55
Pridružen od: 14. dec 2014 81 objav 32 31 2 |
#1
Imam spodnjo tabelo
Recimo, da želim izpisati vse vnose s parentid = 0 ampak ob pogoju, da mi še izpiše seštevek kolikokrat se id posameznega vnosa ponovi še v parentid. Upam, da sem razumljivo vprašal. Zapisal sem query... ki mi vrne
kar pa ni pravilno, ker bi moralo pri id=3 biti zapisano 2 Recimo, če za test zapišem count query deluje pravilno
Kakšna ideja, kaj počnem narobe, da mi ne zazna pravilnega id-ja? *Uporabniku je bila prepovedana uporaba foruma zaradi večih uporabniških računov, ki so po [pravilih obnašanja](/pravila.html) prepovedani.*
|
|
|
Vini
10. jul 2015 09:40:11
Pridružen od: 1. sep 2006 6612 objav 5234 611 56 |
#2
Query deluje povsem pravilno. Ti nepravllno primerjaš stvari, ki jih ne želiš primerjati. :) Da na kratko razložim kaj delaš narobe: pogoj "WHERE parentid = id" naredi to, da sešteješ vse zapise v tabeli categories, ki imajo polje id enako polju *parentid*, kar je pa pravilno enako nič. Težavo boš rešil z aliasi:
|
|
|
kelvan
10. jul 2015 09:41:59
Pridružen od: 19. okt 2007 891 objav 658 122 26 |
#3
naredi raje join na isto tabelo (on c1.parent_id=c2.id) in nato daj group by c1.id dodajam: me je vini prehitel s čisto kul rešitvijo :) |
|
|
thai
10. jul 2015 10:00:10
Pridružen od: 14. dec 2014 81 objav 32 31 2 |
#4
Seveda, jaz sem v oklepaju primerjal parentid z id query-ja v oklepaju in ker jasno v tabeli nikjer ni parentid = id, mi je je za vse count-e zapisalo 0. Lahk bi vedel, da ne gre za isti id :) Hvala Vini za pomoč, sedaj, jasno, deluje tako kot sem želel. *Uporabniku je bila prepovedana uporaba foruma zaradi večih uporabniških računov, ki so po [pravilih obnašanja](/pravila.html) prepovedani.*
|
|
|
ledi
13. jul 2015 14:14:33
Pridružen od: 14. avg 2008 681 objav 325 223 14 |
||


