Moin.
Nehmen wir mal Folgendes (zur Vereinfachung) an:
Jetzt will ich herausfinden, wieviele Fotos und wieviele Texte zu einem User gespeichert wurden und auch
noch gleich, wie viele Signatures an den jeweiligen Texten dranhängen.
Geht das in einem einzigen Statement?
So könnte ich das was zurückgegeben wird natürlich programmtechnisch in einer Schleife verarbeiten und z.B. arrays füllen.
Ist aber umständlich. Geht das eleganter mit count() und GROUP BY ?
Irgendwie steh ich gerade auf dem Schlauch. Bin auf keine funktionierende Lösung gekommen.
Nehmen wir mal Folgendes (zur Vereinfachung) an:
Code:
Tabelle User mit Spalte id Tabelle Foto mit Spalte iduser (also User.id) (1:n) Tabelle Text mit Spalte id, iduser (also User.id) (1:n) Tabelle Sign mit Spalte idtext (also Text.id) (1:n)
noch gleich, wie viele Signatures an den jeweiligen Texten dranhängen.
Geht das in einem einzigen Statement?
Code:
SELECT u.id, f.iduser, t.iduser, s.idtext FROM user AS u LEFT JOIN foto AS f ON u.id = f.iduser LEFT JOIN text AS t ON u.id = t.iduser LEFT JOIN sign AS s ON t.id = s.idtext WHERE u.id = 1
Ist aber umständlich. Geht das eleganter mit count() und GROUP BY ?
Irgendwie steh ich gerade auf dem Schlauch. Bin auf keine funktionierende Lösung gekommen.
Comment