mehrere counts via join ;(

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

  • mehrere counts via join ;(

    moin moin, ich habe folgendes problem:
    ich versuche seit ner weile ein mysql query für ein forum zu basteln.
    passieren soll folgendes:

    1. die daten der verschiedenen foren werden aus der tabelle "foren" geholt
    2. die anzahl der der themen im forum aus der tabelle "themen"
    3. die anzahl der antworten im forum aus der tabelle "antworten"

    mein query sieht so aus:

    PHP-Code:
    SELECT 
    t1
    .id,                                                     
    t1.name
    t1.kommentar,                                             
    COUNT(t2.id) AS anzahl_themen
    COUNT(t3.id) AS anzahl_beitraege             
    FROM forum 
    AS t1
    LEFT JOIN themen 
    AS t2 ON t1.id t2.referenz_forum 
    LEFT JOIN antworten 
    AS t3 ON t1.id t3.referenz_forum
    WHERE t1
    .anzeigen '1' 
    GROUP BY t1.id 
    das problem ist: wenn ich nur einen count auf eine andere tabelle mache geht alles toll blos wenn der zweite count im query steht ändert sich auch das ergebnis des ersten.
    ich hatte schon öffters mit mehreren joins gearbeitet und noch nie probleme gehabt. liegt es an den zwei counts?

  • #2
    das ist auch klar denn Du erizelst mit deinen Joins ein kartesisches produkt
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      mag sein, aber was nützt mir das jetzt? gibts noch ne lösung für das problem?
      Zuletzt geändert von 3rroR; 26.04.2006, 10:28.

      Kommentar


      • #4
        http://dev.mysql.com/doc/refman/5.0/...functions.html
        COUNT(DISTINCT expr,[expr...])
        Returns a count of the number of different non-NULL values.
        Code:
        (...)
        COUNT(DISTINCT t2.id) AS anzahl_themen, 
        COUNT(DISTINCT t3.id) AS anzahl_beitraege
        (...)

        Kommentar


        • #5
          herzlichen dank. geht perfekt!!!!

          Kommentar

          Lädt...
          X