Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

MySQL - Group by und Count

  Alt 25. Feb 2008, 11:05
Datenbank: MySQL • Version: >= 4.1.13
Hallo,

ich komme bei einer SQL-Abfrage, die ich für eine Suchfunktion nutze, nicht weiter. Die Suchergebnisse zu ermitteln klappt ohne Probleme:

SQL-Code:
SELECT ad.article_id, a.title FROM articles a
    LEFT JOIN articles_data ad
        ON ad.article_id = a.article_id
            AND ad.show_flag = 0
            AND ad.active = 1
    WHERE a.text LIKE '%blubb%'
        OR a.title LIKE '%blubb%'
    GROUP BY ad.article_id
    ORDER BY ad.date DESC
ad.active kann pro ad.article_id (diese kann mehrmals vorkommen) nur genau einmal 1 sein, dennoch benötige ich das GROUP BY, da sonst mehrere Einträge mit gleicher ad.article_id aufgelistet werden. Wieso auch immer.

Auf jedenfall erhalte ich dadurch meine Suchergebnisse und ich würde sagen, diese stimmen.

Nun habe ich versucht, die Anzahl der Einträge bei dem oben zurückgelieferten Ergebnis mit fast der gleichen Abfrage zu ermitteln, doch das klappt nicht. Da kommt immer ein falscher Wert heraus:

SQL-Code:
SELECT COUNT(a.article_id) as 'countFROM articles a
    LEFT JOIN articles_data ad
        ON ad.article_id = a.article_id
            AND ad.show_flag = 0
            AND ad.active = 1
    WHERE a.text LIKE '%blubb%'
        OR a.title LIKE '%blubb%'
    GROUP by ad.article_id
Es kann gut sein, dass ich wieder komplett falsch joine, doch ich habe die Joins eigentlich alle durchprobiert.

Was mache ich falsch?

Grüße
  Mit Zitat antworten Zitat