[MySQL 4.0] Doppelter JOIN? Problem!

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

  • [MySQL 4.0] Doppelter JOIN? Problem!

    Hallo!
    Habe hier eine Abfrage in der es darum geht, News, die dazu gehörige Kategorie und die Anzahl der Comments aus der DB zu holen.

    News und Kategorie mit JOIN kein thema, geht....das Problem ist wie geht das mit den Anzahl der Comments?

    habe das so probiert:

    PHP-Code:
    SELECT 
       
    new.*, 
       
    DATE_FORMAT(date'%d.%m.%Y %T') AS datum
       
    kats.*, cs.COUNT(*) FROM news AS new 
    JOIN news_kategorien AS kats 
    JOIN comments 
    AS cs 
    WHERE 
    new.parent_id=kats.id AND new.id=cs.news_id 
    Geht aber leider nicht ist klar, war mehr so auf gut glück....könnte mir einer sagen wies geht?

    Danke im Vorraus

    MfG, Chris

  • #2
    cs.COUNT(*) -> COUNT(cs.*)
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      PHP-Code:
      MySQL meldet


      You have an error in your SQL syntax near '*) 
                      FROM news AS new 
                      JOIN news_kategorien AS kats 
                      JOIN comments' 
      at line 5 
      was soll da falsch sein?

      hier nochmal der Code:

      PHP-Code:
      SELECT 
                          
      new.*, 
                          
      DATE_FORMAT(date'%d.%m.%Y %T') AS datum
                          
      kats.*, 
                          
      COUNT(cs.*) 
                      
      FROM news AS new 
                      
      JOIN news_kategorien AS kats 
                      JOIN comments 
      AS cs 
                      WHERE 
      new.parent_id=kats.id AND new.id=cs.news_id 

      Kommentar


      • #4
        Das Problem is noch nicht aus der welt!

        Könnte sich nochmal jemand meiner erbarmen?



        MfG, Chris

        Kommentar


        • #5
          hmm,

          mit ein bißchen probieren, einmal um genau zu sein, klappt bei mir
          Code:
          COUNT(cs.id)
          also, das zählen einer spalte, ...
          Die Zeit hat ihre Kinder längst gefressen

          Kommentar


          • #6
            Wunderbar, danke, funktioniert jetzt einwandfrei!

            Kommentar


            • #7
              Nein doch nicht...mir fällt gerade auf das ich doch nur einen datensatz zurück bekomme, müssten aber mehr sein!

              PHP-Code:
              SELECT 
              new.*, 
              DATE_FORMAT(date'%d.%m.%Y %T') AS datum
              u.nickname
              kats.name
              COUNT(cs.news_id) AS anzahlcs 
              FROM news 
              AS new 
              JOIN news_kategorien AS kats 
              JOIN comments 
              AS cs 
              JOIN user 
              AS 
              WHERE 
              new.parent_id=kats.id AND new.id=cs.news_id AND new.user_id=u.id GROUP BY new.id 
              Edit: Es liegt daran das wenn kein comment geschrieben wurde kein datensatz entsteht, wie kann man denn einstellen das wenn da nichts ist einfach 0 ausgegeben wird?
              Zuletzt geändert von stf]Daywalker; 03.02.2004, 18:22.

              Kommentar


              • #8
                Bitte ich brauche heute ne Lösung!

                Wie kann ich das ausm WHERE teil denn rausnehmen, weil dann durchsucht der die tabelle ja erst gar nicht...!

                Bitte nochmals um Hilfe

                Kommentar


                • #9
                  Hallo!

                  Probier einfach mal folgendes:
                  PHP-Code:
                  SELECT new.*, DATE_FORMAT(date'%d.%m.%Y %T') AS datumu.nicknamekats.nameCOUNT(cs.news_id) AS anzahlcs 
                  FROM news 
                  AS new 
                  JOIN news_kategorien AS kats 
                  ON kats
                  .id=new.parent_id 
                  LEFT OUTER JOIN comments 
                  AS cs 
                  ON cs
                  .news_id=new.id
                  JOIN user 
                  AS 
                  ON u
                  .id=new.user_id 
                  GROUP BY 
                  new.id 
                  Gruß,
                  Lugi.

                  Kommentar


                  • #10
                    Original geschrieben von stf]Daywalker
                    Bitte ich brauche heute ne Lösung!
                    so nicht!
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar

                    Lädt...
                    X