MySQL - LEFT JOIN - Ausgabe nur bei ungleich

Webgau

Mitglied
Servus,

ich bin gerade am verzweifeln. Ich bastel gerade an einer Führerscheinübersicht:

Mitglied
==========
* id (INT)
* vorname (VAR)
* nachname (VAR)
==========

LEFT JOIN

Führerschein
==========
id (INT)
id_Mitglied (INT)
fs_klasse (INT)
==========

In der Führerscheintabelle kann ein Mitglied mehrfach mit unterschiedlichen "fs_klassen" vorkommen. Ich möchte nur diese ausgeben welche eine bestimmte Führerscheinklasse nicht haben. Nun benötige ich einen Denkanstoß, wie bekomme ich nur die Nutzer angezeigt?

Ich wünsche einen schönen Abend.
 
Zuletzt bearbeitet:
Lösung
SQL:
select m.*
from mitgleid m
    LEFT join (
        select id
        from fuehrerschein
        where fs_klasse = 123
    ) f
    on m.id = f.id_mitglied
where f.id is null
oder
SQL:
select m.*
from mitgleid m
where 
    m.id not in (
        select id_mitglied
        from fuehrerschein
        where fs_klasse = 123
    )
SQL:
select m.*
from mitgleid m
    LEFT join (
        select id
        from fuehrerschein
        where fs_klasse = 123
    ) f
    on m.id = f.id_mitglied
where f.id is null
oder
SQL:
select m.*
from mitgleid m
where 
    m.id not in (
        select id_mitglied
        from fuehrerschein
        where fs_klasse = 123
    )
 
Lösung
Vielen Dank! Wie weit kann ich es mit solchen unterabfragen treiben? Also könnte ich in diese eine weitere Unterabfrage packen?

Grüße und vielen Dank nochmal!
 
Zurück