Autor Zpráva
Ssob
Profil
Zdravim,

mam databazi, ve ktere jsou tabulky navrzene takto:

Technika
ID
nazev
technika_atributy
technika_id
nazev
technika_fotky
technika_id
cislo_fotky

Kde technika_id vzdy urcuje k jake technice dana fotografie resp. atribut patri.

K probemu: Potrebuji vypsat informace o technikach + kolik atributu a fotek ma kazda technika. Zkousel jsem nasledujici dotaz, ale pocty atributu a fotek nesouhlasily s realem. Vysledkem byly nejake (pro me) nesmyslne cisla. A navic pocet atributu byl vzdy stejny jako pocet fotek.


SELECT t.ID, COUNT( f.technika_id ) AS N_Fotek, COUNT( a.technika_id ) AS N_Atr
FROM Technika AS t
LEFT JOIN technika_fotky AS f
ON f.technika_id = t.ID
LEFT JOIN technika_atributy AS a
ON a.technika_id = t.ID
GROUP BY t.ID


Udaje nesouvisejici s problemem jsem vynechal.

Dekuji predem za kazdou pomoc
MzM
Profil
pokud můžeš, použij vnořené selecty:
select t.id,
(select count(*) from fotky f where f.technika_id = t.id) as fotek,
(select count(*) from atributy a where a.technika_id=t.id) as atributu
from technika t

jinak dostaneš ty count hotnoty stejné.

pokud nemůžeš použít vnořené selecty, bude se tomuset řešit jinak. Pokud nebudeš vědět, zkusím se zamyslet.
Ssob
Profil
MzM
Vnorene selecty pouzivat muzu. To znamena, ze to .... Funguje!
Diky moc!!

Vubec jsem nevedel, ze se muze pouzivat vnorene selecty takovym to zpusobem. Diky za rozsireni obzoru.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0