Vorwort

Kurze Erklärung

Die unten gezeigten Tabellen stellen eine MySQL-Datenbank da.
Gesucht sind alle Benutzer, welche eine bestimmte Nachricht noch nicht empfangen haben.

Gewünschte Ergebnisse

Nachrichten Id Benutzer
1 Maxi, Zocker1993
3 Hans
4 Hans, Maxi, Zocker1993

Lösung

MySQL:

                SELECT `Benutzer`.`Benutzer`
                FROM `Benutzer`
                WHERE `Benutzer`.`Benutzername` NOT IN (
                    SELECT `gesendet`.`Benutzer`
                    FROM `gesendet`
                    LEFT JOIN `Nachrichten`
                    ON (`Nachrichten`.`Id`=`gesendet`.`Nachricht`)
                    WHERE `Nachrichten`.`Id`='2'
                );
            

Tabellen

Benutzer

Benutzername (P) Vorname Nachname
Maxi Max Mustermann
Hans Dieter Beispielmann
Zocker1993 Tim Vogel

Nachrichten

Id (P) Text
1 Ich bin eine Nachricht..
3 Und hier ist noch eine Nachricht, welche in der Datenbank vorhanden ist.
4 Eine weitere und letzte Nachricht.

gesendet

Nachricht (P) Benutzer (P)
Maxi 3
Zocker1993 3
Hans 1

Legende

P Primärschlüssel