SQL Prolem mit INNER JOIN

  • Hi,
    ich habe da folgendes Problem:
    ich will daten aus 3 tabellen verbinden.
    Tabelle items

    Tabelle gruppen

    Code
    id |  name   |
    ---+---------+
     1 | Gruppe1 
    ---+---------+
     2 | Gruppe2
    ---+---------+
     3 | Gruppe3
    ---+---------+

    Tabelle group_joins

    So, jetzt will ich 5 gruppen haben undzwar ihre id, ihre mitglieder und die items, die zu der gruppe gehören.
    Bisher habe ich folgendes versucht:

    Aber ich erhalte immer folgende ausgabe:

    Code
    id |  name   | videos | members
    ---+---------+--------+---------
     1 | Gruppe1 | 5      | 5

    Dabei hat die gruppe1 drei mitlgieder und 2 videos...

    Hat da irgendjemand eine idee? Ich komm nicht weiter

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

    4 Mal editiert, zuletzt von Tobse (15. Februar 2011 um 20:48)

  • Probier mal:

    Wenn du Aggregations-Funktionen verwendest erwartet SQL eine GROUP BY-Klausel. Ansonsten kommen i.d.R. völlig unerwartete Ergebnisse.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Das Ergebnis sieht schon besser aus, ist aber immernoch falsch...
    Würde es sinn machen, die mitgliederzahl zusätzlich in die Gruppentabelle zu schreiben? Der befehl mit nur den items als JOIN funktioniert einwandfrei.

    EDIT:
    Ich habs geschafft, letztendlich mit subqueries und nicht mit joins.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

    Einmal editiert, zuletzt von Tobse (18. Februar 2011 um 20:55)