OT: Správná formulace SQL dotazu v PostgreSQL
Jiří Volf
konference na volfovi.net
Středa Březen 26 14:24:18 CET 2008
Dobrý den,
dejme tomu, že mám databázi:
KNIHA(ID,NAZEV,AUTOR_ID) , AUTOR(ID,NAZEV)
požadavek je vypsat jméno a počet napsaných knih všech
autorů, kteří napsali alespoň jednu z nich.
Nejdříve jsem sestrojil něco jako:
select autor.nazev, (select count(kniha.id) from kniha where
kniha.autor_id=autor.id) as pocet_knih where pocet_knih>0;
jenomže to mi v postgre (7.4) nepracuje, píše to neznámý
sloupec "pocet_knih". Je v tomto nějaký problém?
Je to ve vyšších verzích OK? Nebo mám jen špatně
zafixováno, že by to mělo fungovat?
Tato formulace již funguje:
select autor.nazev, (select count(kniha.id) from kniha where
kniha.autor_id=autor.id) having (select count(kniha.id) from kniha where
kniha.autor_id=autor.id)>0;
Neprovádí se ale zde tento vnořený SQL dotaz dvakrát?
Díky.
JV
Další informace o konferenci Linux