Autor Zpráva
Kubii
Profil *
Zdravim, mam dve tabulky: produkt a ekvivalent.
Produkt ma nejaky kod, podla ktoreho cez LIKE s obojstrannym wildcardom vyberam jeden alebo viac produktov, ktore matchuju na danu cast kodu.

Chcel by som mat pri kazdom riadku aj stlpec pocet, ktora by zratala pocet ekvivalentov. (tabulka ekvivalentov je zlozena z ID1, ID2). V sucasnosti mam cca takyto kod:

 SELECT katalog.*, COUNT(ID2) AS 'pocet' FROM katalog, ekvivalent WHERE katalog.kod LIKE '%mm%' AND katalog.id = ekvivalent.ID1 GROUP BY id


Vsetko je fajn, problem nastane len vtedy, ked produkt nema ani jeden ekvivalent. Vtedy chcem, aby mi vratil klasicky row z tabulky produkt s informaciami a pocet 0, ale to sa nestane. Pomoze mi s tym prosim niekto? Postacil by mi aj len samotny query, ale ak k tomu bude aj trosku teorie, len to ocenim. Vdaka vopred.
Taps
Profil
Kubii
zkus to přes left join
SELECT k.*, COUNT(k.ID2) AS 'pocet' FROM katalog k left join ekvivalent e 
on k.id = e.ID1 
WHERE k.kod LIKE '%mm%' GROUP BY k.id
Kubii
Profil *
Genialne, funguje to! Vdaka... To by ma zaujimalo kde bol pes zakopany, ale vidim, ze musim sa poriadne naucit JOINy.. :)

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:

0