COUNT(...) ohne Gruppierung
- From: "Philipp E. Imhof" <public@xxxxxxxx>
- Date: Fri, 07 Apr 2006 21:15:54 +0200
Hi!
Ich habe folgende Situation:
Tabelle 'namen':
| id | name |
-------------
| 1 | bli |
| 2 | blo |
Tabelle 'kommentare'
| id | nid | text |
-------------------
| 1 | 1 | abc |
| 2 | 1 | xyz |
| 3 | 2 | jkjk |
Nun möchte ich mit einem einzigen Query folgendes Resultat erhalten:
| name | text | anzahl |
-------------------------
| bli | abc | 2 |
| bli | xyz | 2 |
| blo | jkjk | 1 |
Mein erster Versuch war:
---
|SELECT namen.name,kommentare.text,COUNT(kommentare.text) AS anzahl
|FROM namen LEFT JOIN kommentare ON namen.id=kommentare.nid
---
Das hat natürlich nicht geklappt, weil COUNT ein GROUP BY verlangt.
Den LEFT JOIN mache ich, weil ich auch die Namen benötige, zu denen
es keinen Kommentar gibt.
Dann habe ich das Query angepasst:
---
|SELECT namen.name,kommentare.text,COUNT(kommentare.text) AS anzahl
|FROM namen LEFT JOIN kommentare ON namen.id = kommentare.nid
|GROUP BY namen.name
---
Das gibt mir zwar alle Namen und die jeweils korrekte Anzahl, aber
(auch darüber wundere ich mich nicht) zeigt nur einen einzigen
Kommentar pro Namen an.
Nun meine Frage an euch: Gibt es überhaupt eine Möglichkeit, mein
Resultat mit einem einzigen Query zu erhalten?
Vielen Dank für Tipps.
Gruss
Philipp
.
- Follow-Ups:
- Re: COUNT(...) ohne Gruppierung
- From: Thomas Rachel
- Re: COUNT(...) ohne Gruppierung
- From: Gerrit Beine
- Re: COUNT(...) ohne Gruppierung
- Prev by Date: Re: SELECT Subquery in UPDATE
- Next by Date: Re: Debian: Welche Mysql-Version nehmen?
- Previous by thread: SELECT Subquery in UPDATE
- Next by thread: Re: COUNT(...) ohne Gruppierung
- Index(es):
Relevant Pages
|