Announcement

Collapse
No announcement yet.

Count abfrage über drei unabhängige tabellen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Count abfrage über drei unabhängige tabellen

    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
    ich sage noch dazu dass ich mysql her nehme


    danke schon mal im voraus
    lg timo

  • #2
    Originally posted by timoly View Post
    hi zusammen,
    ich zerbreche mir gerade den kopf wie ich folgendes problem löse und bin fast am verzweifeln.
    ich habe drei tabellen
    Crosspost: http://www.pg-forum.de/sql/6400-grou...-tabellen.html

    Andreas

    Comment


    • #3
      ok jetzt wars doch ganz einfach, bin selber drauf gekommen. hätte mich nicht so an group by fest beißen sollen. mit sub selects wars denkbar einfach

      SELECT f . * , (

      SELECT count( t.FORid )
      FROM textt
      WHERE t.FORid = f.Fid
      AND t.pindex =0
      ) AS ctext, (

      SELECT count( l.FORid )
      FROM link l
      WHERE l.FORid = f.Fid
      AND l.pindex =0
      ) AS clink
      FROM film f

      Comment

      Working...
      X