der grundsatz, den du mit deiner abfrage verletzt hast, ist, alle spalten, die angezeigt werden sollen und keine aggregat-funktionen sind, müssen auch in die group by klausel.
SELECT p.id, p.domain, r.link, SUM( COALESCE( v.views ) ) , COUNT( DISTINCT (
r.anzahl
) ) , SUM( r.anzahl )
FROM partners p
LEFT JOIN p_rechnung r ON p.id = r.partner_id
LEFT JOIN p_view v ON p.id = v.partner_id
WHERE r.status = '1'
AND r.typ = '1'
GROUP BY p.id, p.domain, r.link
HAVING SUM( r.anzahl ) > SUM( COALESCE( v.views ) )
ORDER BY RAND( )
LIMIT 1
So sollte es also richtig gruppiert sein?
COUNT( DISTINCT (
r.anzahl
) ) zeigt jetzt aber 1 an obwohl es 3 sein müssten...
Zu Unterabfragen: damit meinst du "SELECT ... FROM ... WHERE r.partner_id = p.id AND ...."
Damit hatte ich das auch schon versucht. Leider erhalte ich garkein Ergebnis, wenn in der Tabelle p_view kein Datensatz vorhanden ist.