Daniel Petratsch: MySQL Join Problem

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

--
Das ist der ganze Jammer, die Dummen sind immer so sicher und die Gescheiten so voller Zweifel.
[Bertrand Russell]
  1. 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

    --

    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
  2. 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