MySQL Join Problem
Daniel Petratsch
- datenbank
Hallo !
Also ich habe folgendes Problem:
Ich habe eine Tabelle mit Benutzerdaten, mit dem feld "kunden_nr" (sind schon noch mehr, aber für dieses Bsp nicht relevant)
...und eine 2. Tabelle mit Gruppenzuordnungen, in dem die Kunden bestimmten Gruppen zugeordnet werden können, zb
Benutzertabelle
kunden_ nr = 1
Gruppenzuordnungstabelle
kunden_nr = 1
gruppen_id = 12
Also ist der Kunde mit der "kunden_nr" der Gruppe 12 zugeordnet(Jeder Kunde kann mehreren Gruppen, jedoch logischerweise einer Gruppe immer nur 1x angehören).
Jetzt möchte ich aber gerne abfragen, mir nur die Benutzer aus der Tabelle Benutzerdaten auszugeben, zu denen kein Eintrag in der Tabelle Gruppenzuordnungen mit einer _bestimmten_ "gruppen_id" existiert
Geht das irgendwie mit einem LEFT JOIN, ich denke das Problem ist dann gegeben, wenn überhaupt kein Datensatz in der Gruppenzuordnungstabelle existiert, an dem "gejoined" werden kann dann wird SQL wohl meckern. Es ginge zwar mit einer kleinen Einzelabfrage die Existenz dieses festzustellen, aber ich möchte gerne alles mit einem Select auslesen.
Hat vielleicht irgendwer eine Idee?
Danke,
Daniel
Hi,
Left-JOIN und dafür sorgen, dass "rechts" nichts steht:
SELECT benutzertabelle.kunden_nr, gruppen_id
FROM benutzertabelle LEFT JOIN gruppenzuordnungstabelle
ON benutzertabelle.kunden_nr = gruppenzuordnungstabelle.kunden_nr
WHERE gruppen_id IS NULL
MfG
Rouven
yo,
SELECT spalten
FROM benutzertabelle AS b
LEFT JOIN gruppenzuordnungstabelle AS g
ON (b.kunden_nr = g.kunden_nr)
WHERE g.gruppen_id=12
AND g.kunden_nr IS NULL;
Ilja