Count in Verbindung mit Join über mehrere Tabellen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Count in Verbindung mit Join über mehrere Tabellen

    Hallo zusammen,

    bin mal wieder am grübeln und komm nicht so richtig weiter. Und zwar hab ich folgendes Problem, was ich am besten mal an einem Beispiel erkläre:

    Der User kann auf seinem account verschiedene Ordner.

    ZB.

    1.Ordner "Bücher"
    2.Ordner "CD's"

    von der DB - Struktur hab ich (in bezug auf das Beispiel) 3 Tabellen

    Tabelle1 = user_daten (user_id, vorname ....)
    Tabelle2 = buecher (user_id, buchtitel...)
    Tabelle3 = cd (user_id, cd_titel...)

    Wenn der User sich auf seinen account loggt soll die erste Seite diese Ordner anzeigen und die Anzahl der Einträge im jeweiligen Ordner

    Normalerweise würde ich mit FROM (user_daten) und per LEFT JOIN (buecher, cd) die Daten in einer Abfrage aus der DB holen. Ich weiss nur leider nicht wie ich per COUNT (oder irgend ne andere - vielleicht sogar ne php-lösung) bestimmen soll wieviel Einträge dieser user in der buecher bzw. in der cd-Tabelle hat.
    Mein Problem besteht darin, dass ich wenns geht , das ganze gern mit einer Abfrage machen würde.

    Gibts da irgend ne Möglichkeit ??

    Gruss und Danke

    Thommy
    www.unister.de

    what students want!

  • #2
    z.b. so:

    Code:
    SELECT u.user_id,u.vorname,count(b.user_id) as buecher FROM user as u LEFT JOIN buecher as b ON u.user_id=b.user_id GROUP BY u.user_id;
    [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
    [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
    [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

    © Harald Schmidt

    Kommentar


    • #3
      Hallöle,

      ja aber was ist mit der CD-Tabelle die wollte ich ja eigentlich mit in die Abfrage bringen und eben nicht für jeden Ordner ne neue Abfrage starten. Wenn ich den Join über beide Tabellen mache und zb. in Bücher sind 3 Einträge und in CD ind 4 Einträge? Dann hast du 7 Datensätze. Die Lösung mit group by funktioniert dann nicht mehr.

      Wie könnte ich das machen. Kann ich vielleicht in php das Array welches die Datensätze enthält so auseinandernehmen, dass er bespielsweise alle Array - Bestandteiele löscht welche die gleiche buecher_id haben? (In den 7 Datensätzen existieren ja nur 3 unterschiedliche buecher_id's - und genau die brauche ich) Dann könnte mit Count das Array durchzählen???

      Gruss

      Thommy
      www.unister.de

      what students want!

      Kommentar


      • #4
        stimmt, die cd tabelle noch:
        Bitte ausprobiern !
        Code:
        SELECT u.user_id,u.vorname,count(b.user_id) as buecher,count(c.user_id) as cds FROM user as u LEFT JOIN buecher as b ON u.user_id=b.user_id LEFT JOIN cds as c ON c.user_id=u.user_id GROUP BY u.user_id;
        [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
        [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
        [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

        © Harald Schmidt

        Kommentar

        Lädt...
        X