group by und count über mehrere tabellen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

timoly
Beiträge: 1
Registriert: Sa, 29.09.2012 01:04

group by und count über mehrere tabellen

Beitrag von timoly »

hi zusammen,
ich zerbreche mir gerade den kopf wie ich folgendes problem löse und bin fast am verzweifeln.
ich habe drei tabellen

tabelle:filme
tabelle:Texte (verweiß auf filme mit fid)
tabelle:links (verweiß auf filme mit fid)

zu jedem film können mehrere texte angelegt sein unabhängig davon zu jedem film xbeliebig viele links
in filme liegen drei filme drin zu jedem film existieren 3 links und jeweils zu jedem film ein Text

ich möchte wissen wie viele texte und links pro film existieren

ergebnis sollte so aussehen
film , clinks, ctexte
film1, 3, 1
film2, 3, 1
film3, 3, 1

mein bisheriger ansatz:
SELECT
f.*,
count(l.Fid) as clinks,
count(tx.Fid)as ctexte
FROM
film as f
LEFT JOIN (text as tx, link as l)
ON (f.Fid = tx.Fid and f.Fid = l.Fid)
GROUP BY
f.Fid

jetzt bin ich mir gar nicht mehr sicher ob ich das überhaupt mit group by lösen kann oder ob ich subselects nehmen muss

danke schon mal im voraus
lg timo
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: group by und count über mehrere tabellen

Beitrag von F3K Total »

Moin,
timoly hat geschrieben:... group by lösen kann oder ob ich subselects nehmen muss...
wohl beides, in Base geht z.B. dies:

Code: Alles auswählen

SELECT "Film", "AL", COUNT( "Text" ) AS "AT" 
FROM (SELECT "ID", "Film", COUNT( "link" ) AS "AL" 
      FROM "filme" 
      JOIN "links" 
      ON "ID" = "IDF" 
      GROUP BY "ID", "Film")
      AS "CL" 
JOIN "text" 
ON  "CL"."ID" = "text"."IDF" 
GROUP BY  "CL"."Film", "CL"."AL"
Gruß R
Antworten