Autor Zpráva
scratcher
Profil
zdravím mám 3 tabulky:
clanky: id,nazev,datum(date)
kategorie: id,nazev,zobrazit,parent
clanky_kategorie: id,clanky_id,kategorie_id

kazdy clanek muze patrit do vice kategorii.

a ja bych potreboval poradit jak na tohle:
a) z aktualniho clanku (jeho id znam) bych potreboval zjistit nazvy všech clanku ktere patri do stejne kategorie jako aktualni clanek (kazdy clanek muze patrit do vice kategorii!)
b) vypsat vsechny kategorie a pocet kolik obsahuji clanku (vypsat ale jen clanky ktere maji datum nizsi nebo rovno aktualnimu - clanky s datem v budoucnu se nezobrazuji)

diky moc za nakopnuti
Akacko
Profil
Nevím, jestli jsem neudělal nějakou hloupou chybu, ale nemam to kde zkontrolovat.

-- a)
SELECT C.nazev FROM clanky C, clanky_kategorie CK WHERE C.id=CK.clanky_id AND CK.kategorie_id = ( SELECT kategorie_id FROM clanky_kategorie WHERE clanky_id = $zname_id)
-- b)
SELECT COUNT(C.*) as pocet_clanku, K.nazev FROM clanky C, clanky_kategorie CK, kategorie K WHERE K.id = CK.kategorie_id AND CK.clanky_id = C.id AND (C.datum <= NOW()) GROUP BY K.nazev
scratcher
Profil
diky B je OK,
ale u toho A) to hazi "Subquery returns more than 1 row" protoze ten clanek patri do vice nez jedne kategorie. Takze ten druhy SQL vrati 2 zaznamy.
Asi sem zapomel napsat ze se jedna o MySQL. diky
Kajman_
Profil *
Na A by mohlo pomoci upravit CK.kategorie_id in
scratcher
Profil
diky moc, to uz je OK
Toto téma je uzamčeno. Odpověď nelze zaslat.