title image


Smiley Verschachtelte SELECT-Abfrage
Folgende Situation:

1. Tabelle "Kunden" (enthält Kunden-ID+Name)

2. Tabelle "Aktion" (enthält Kundennummer+Aktion (Aktion enthält Werte A,B,C....))



Ein Kunde kann mehrere Aktionen haben, also in der 2. Tabelle steht dann 1+A, 1+B, 2+B, 2+C etc. --> Jetzt soll z.B. abgefragt werden, welcher Kunde noch nicht Aktion "B" hatte. Abfrage nur auf die 2. Tabelle geht nicht, da ja dann Kunde 1 trotzdem gefunden wird (wegen Eintrag 1+A). Mein Lösungsansatz: Erst alle Kunden mit Aktion B selectieren und dann von Tabelle 1 "abziehen", also 2 Abfragen:



Abfrage Nr. 1 "nurB":

----------------------

SELECT [kunden].[ID], [aktion].[aktion]

FROM kunden INNER JOIN aktion ON [kunden].[ID]=[aktion].[kunden-nr]

WHERE [aktion].[aktion]="B";



Abfrage Nr. 2 (unter Benutzung der ersten Abfrage):

---------------------------------------------------

SELECT kunden.ID, nurB.aktion

FROM kunden LEFT JOIN nurB ON kunden.ID = nurB.ID

WHERE (nurB.aktion) Is Null;



Das funktioniert auch so, also Abfrage 2 liefert das gewünschte Endergebnis. Mein Problem ist: Ich brauche beide Abfragen in einem SELECT-Statement zusammengefaßt. Wie wird syntaktisch die erste Abfrage in die 2 integriert? Hintergrund: Auf einer Website wird per Maulklick auf "A", "B" oder "C" die jeweilige Auswahl ausgeführt. Also das "B" im obigen Beispiel ist variabel.

--> Also wie fasst man beide Abfragen in einem Statement zusammen? Oder geht das nicht?









geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: