|   Mailinglisten-Archive | 
> ich habe eine Tabelle kunden mit kunden_id, ausgabe. Jetzt suche ich 
> alle Kunden, die
> a) mehrere Ausgaben abonniert haben
> b) alle Kunden, die mehr als eine Ausgabe haben, mit den bestellten 
> Ausgaben
> c) alle Kunden, die eine Ausgabe x abonniert haben und die weiteren 
> Ausgaben des Kunden
> 
> Tabelle:
> Kunden:
> kd_id , ausgabe_id
> 
> a) SELECT count(kd_id) as anz FROM kunden GROUP BY kd_id HAVING anz >1
> 
> b) schon schwieriger und momentan fehlt mir die Idee
> Mit subselect sollte es gehen. Kann leider meine MySQL noch nicht. Also 
> eher die Variante mit join?
> Wie bekomme ich das hin. Natürlich schon möglichst auf der Kommandozeile.
> SELECT kd_id,ausgabe_id FROM kunden GROUP BY kd_id bringt mir immer nur 
> eine ausgabe pro kunde
SELECT kunden.kd_id,
        kunden.ausagbe_id,
        COUNT(k2.kd_id) as anz
FROM kunden
  LEFT JOIN kunden AS k2
   ON kunden.kd_id = k2.kd_id
GROUP BY kunde.kd_id, kunden.ausgabe_id
HAVING anz > 1
> 
> c) baut wohl auf b) auf und sollte, wenn b) erledigt ist nicht mehr so 
> schwer sein.
SELECT kunden.kd_id,
        kunden.ausagbe_id,
        COUNT(k2.kd_id) as anz
FROM kunden
  LEFT JOIN kunden AS k2
   ON kunden.kd_id = k2.kd_id
WHERE kunden.ausgabe_id = 'x'
GROUP BY kunden.kd_id, kunden.ausgabe_id
HAVING anz > 1
-- 
Sebastian Mendel
www.sebastianmendel.de
www.tekkno4u.de
www.nofetish.com
-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 
    php::bar PHP Wiki - Listenarchive