Hallo! Ich hab ein Hänger beim Denken. Folgendes Problem:
Gegeben ist eine Tabelle mit doppeltem Schlüssel, nennen wir sie k1 und k2:
Nun möchte ich alle k1 haben, die nicht in Kombination mit einem bestimmten k2-Wert (x) auftauchen.
Folgendes Select löst diese Aufgabe:
Leider ist die Abfrage sehr ineffizient und die Tabelle verdammt groß.
Es müsste doch was Schnelleres ohne geschachteltes Select-Statement geben, oder? Ich dachte an sowas wie nach k1 gruppieren und dann Gruppen ohne k2=x rausschmeißen. Hat jemand eine Idee???
Danke für jede Anregung!
Gegeben ist eine Tabelle mit doppeltem Schlüssel, nennen wir sie k1 und k2:
Code:
k1 | k2 --------- 1 | 1 1 | 2 1 | 3 2 | 1 2 | 2 2 | 3
Folgendes Select löst diese Aufgabe:
SELECT DISTINCT k1
FROM tabelle
WHERE k1 NOT IN
(
SELECT k1
FROM tabelle
WHERE k2 =x
)
FROM tabelle
WHERE k1 NOT IN
(
SELECT k1
FROM tabelle
WHERE k2 =x
)
Es müsste doch was Schnelleres ohne geschachteltes Select-Statement geben, oder? Ich dachte an sowas wie nach k1 gruppieren und dann Gruppen ohne k2=x rausschmeißen. Hat jemand eine Idee???
Danke für jede Anregung!
Comment