Moin!
Mit einem JOIN funktioniert die Abfrage. Möcht ich die Angebote zusätzlich abfragen, erhalte ich ein falsches Ergebnis. Nämlich das Produkt von Anfragen x Angebote!? Also bei 3 Anfragen und 2 Angeboten steht im Ergebnis 2 mal 6!
Stimmt, und das muß auch so sein bei deinem Query.
Stell dir den Vorgang mal Schritt für Schritt vor:
SELECT bizgap_stammdaten.mitglied_id, firmenname, kontosperre, DATE_FORMAT( lastlogin, '%d.%m.%Y %H:%i:%s' ) AS lastlogin, DATE_FORMAT( anmeldedatum, '%d.%m.%Y %H:%i:%s' ) AS anmeldedatum, COUNT( bizgap_anfragen.anfrage_id ) AS anzahl_anfragen, COUNT( bizgap_angebote.angebot_id ) AS anzahl_angebote
Du willst "diverse Spalten" wissen...
FROM bizgap_stammdaten
...aus dieser Tabelle...
LEFT JOIN bizgap_anfragen
ON bizgap_anfragen.mitglied_id = bizgap_stammdaten.mitglied_id
...verknüpft mit dieser Tabelle...
LEFT JOIN bizgap_angebote
ON bizgap_angebote.mitglied_id = bizgap_stammdaten.mitglied_id
...und dieser Tabelle.
Lass dir das Ergebnis dieser Verknüpfung mal ausgeben. Denn damit arbeitet auch das GROUP BY weiter.
GROUP BY bizgap_stammdaten.mitglied_id
Damit faßt du jetzt identische Mitglieds-IDs zusammen. Eine Auseinanderhaltung von Angeboten und Anfragen ist darin gar nicht angegeben.
ORDER BY 'bizgap_stammdaten.mitglied_id' ASC
LIMIT 0 , 30
Sortieren und limitieren hat optische Reize, aber keine inhaltlich-qualitativen Auswirkungen auf das Ergebnis.
Es kann durchaus sein, dass du für die Ermittlung der zwei Anzahlen auch zwei Querys machen mußt.
- Sven Rautenberg
My sssignature, my preciousssss!