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