Vinzenz Mai: COUNT- Problem

Beitrag lesen

Hallo Kalle,

SELECT
per1.id
,per1.bezeichnung
,per1.textfarbe
,per1.wichtig
,per1.adr_unt
,per1.ort
,per1.vname
,per1.nname
,count(kon1.id) anz_kontakte
FROM     ".$db[0]['personen']." AS per1

LEFT JOIN ".$db[0]['kontakte']." AS kon1
ON        kon1.aussteller_id = per1.id
AND      (kon1.prio_1=1 OR kon1.prio_2=1)

WHERE     per1.owner_id=".$owner_id."
AND       per1.adr_kz = ".$arr['aus_bes']."
".$and."
GROUP BY per1.bezeichnung, per1.ort, per1.adr_unt

sowas schluckt nur MySQL. Und das Ergebnis ist anders als das, das Du haben möchtest. Du könntest mit Subselects arbeiten.

Denke daran, dass Du beim Einsatz von Aggregatsfunktionen nach _allen_
Spalten gruppieren musst, auf die _keine_ Aggregatsfunktion angewandt wird.

Bei MySQL 5.x könntest Du eventuell auch mit einem View arbeiten, wobei Du
EXPLAIN befragen solltest, was performanter ist.

Freundliche Grüße

Vinzenz