Frage bzgl. Duplikate

Suchfunktion

Erfahrenes Mitglied
Hi.

Ich habe 3 MySQL-Tabellen:
Code:
+----------------+     +------------------+     +----------------+
|   customers    |     | address_book     |     |   countries    |
+================+     +==================+     +================+
| customers_id   |--+  | entry_country_id |---->| countries_id   |
| customers_name |  +->| customers_id     |     | countries_name |
+----------------+     +------------------+     +----------------+

Dazu gehoert folgende Abfrage:
Code:
SELECT DISTINCT(co.countries_id), cu.customers_id, COUNT(co.countries_name) 
FROM customers cu, address_book ab, countries co 

WHERE co.countries_id = ab.entry_country_id 
AND cu.customers_id = ab.customers_id 

GROUP BY countries_name ASC

Ich moechte halt eine Auzaehlung von allen Laendern (3. Tabelle) haben, die (in Tabelle 2) mit einem Benutzer (Tabelle 1) verknuepft sind und dazu eine Aufzaehlung, wieviele Benutzer zu den jeweiligen Laendern gehoeren.

Oder anders herum:
Ich meochte wissen, wieviele Benutzer (Tabelle 1) zu dem jeweiligen Land (Tabelle 3) gehoeren.

Also nur, wenn ein Land auch einen Benutzer hat, soll es aufgezaehlt werden.
Und dann soll gezaehlt werden, wieviele Benutzer in der Benutzertabelle (Tabelle 1, customers) zu dem Land gehoeren.

Im Moment werden noch alle Laender ausgelesen und dann in der zweiten Tabelle (address_book) nachgeschaut, welche Benutzer zu dem jeweiligen Land gehoeren.

Aber irgendwas laeuft da falsch, da bei der Auflistung der Benutzeranzahl zu viele Benutzer mitgezaehlt werden, also werden wohl auch Duplikate (bzw. fehlerhafte Eintraege in Tabelle 2) mit gezaehlt.

Hilfe :(.


//Nachtrag:
Das ganze wird in ein PHP-Script eingebunden,
also falls PHP (z.B. fuer Array's, o.Ae.) benoetigt wird um die Abfrage besser zu gestalten, dann ist das natuerlich auch kein Problem.
 
Zuletzt bearbeitet:
ICH.. BIN.. SO.. GUHD!
GE UH HA DE - GUHD!

:D :D

Habe es hinbekommen.
Code:
SELECT ab.entry_country_id, c.countries_name, COUNT(distinct(d.customers_id)) 
							FROM customers d, address_book ab, countries c 
							WHERE ab.customers_id = d.customers_id 
							AND c.countries_id = ab.entry_country_id 
							GROUP BY countries_name ASC

Trotzdem danke an Alle die sich die Muehe gemacht haben, den Thread hier zu lesen :)
 
Zurück