Mailinglisten-Archive |
> ich habe eine einfache Tabelle: > a: INT * > b: INT * > * Primärindex über beide Spalten > > Jedes Zahlenpaar gibt es also höchstens einmal. > > Nun möchte ich alle a ermitteln, für die gilt: > > 1. Teilaufgabe: > Zu jedem Wert x der Positivliste gibt es einen Datensatz (a,x). > > Hierzu verwende ich folgende Abfrage: > > SELECT a, COUNT(b) AS b_count > FROM tabelle > WHERE (b IN (1,5,12)) > GROUP BY a > HAVING (b_count = 3) > > 2. Teilaufgabe: > Es gibt keinen Datensatz (a,b), bei dem b in der Negativliste > enthalten ist. > > Dazu verwende ich gerade diese Abfrage: > > SELECT a, COUNT(b) AS b_count > FROM tabelle > WHERE (b IN (7,8,13)) > GROUP BY ressource > HAVING (b_count > 0) > > ... und entferne dann die hier gefundenen a aus dem obigen Ergebnis. SELECT a, SUM(CASE WHEN b IN (1,5,12) THEN 1 ELSE 0 END) AS good_count, SUM(CASE WHEN b IN (7,8,13) THEN 1 ELSE 0 END) AS bad_count FROM tabelle GROUP BY a HAVING good_count = 3 AND bad_count = 0 -- 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