phpbar.de logo

Mailinglisten-Archive

Positiv- und Negativliste

Positiv- und Negativliste

Andreas Vogel a-v-o at web.de
Mit Jul 23 13:35:38 CEST 2003


Guten Tag allerseits,

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.

Gibt es eine Möglichkeit, die beiden Teilaufgaben in einer einzigen
Abfrage erledigen zu lassen?

Die Positiv- und Negativliste enthalten unterschiedliche Werte; es
gibt keinen Zahlenwert, der in beiden Listen vorkommt.

Schon mal Danke im Voraus,
Andreas Vogel

Die tauschhandelsfreie Gesellschaft
http://a-v-o.bei.t-online.de

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive