[mysql] Daten aus Tabelle auslesen, die nicht in einer anderen enthalten sind

esprit1st

Grünschnabel
Hallo zusammen,

ich hab folgendes Problem:

ich habe 2 Tabellen, die eine mit Daten und die andere mit einem Ausschlusskriterium.
also:

Tab1:
Code:
User, email:
fritz, fritz@abc.de
hans, hans@def.de

Tab 2:
Code:
email:
fritz@abc.de

Nun möchte ich alle User aus Tabelle 1, deren email nicht in Tabelle 2 enthalten ist.
Irgendwie bekomme ich das nicht gebacken.

Bin für alle Hinweise dankbar!
 
Hallo,
hab es mal mal in SQL Server 2005 nachgebastelt und so funktioniert es.

Code:
USE test
SELECT Tab1.[user], Tab1.email FROM Tab1,Tab2 WHERE tab1.email != Tab2.email

Vielleicht nicht die schönste Art aber du hast erstmal dein Ergebnis ;)
 
Hi Konstantin,

leider nicht, denn sobald die 2. Tab mehrere Einträge hat bekommst Du zu viele Ergebnisse zurück, da ja jeder Eintrag aus Tab1 mit jedem aus Tab2 verknüpft wird.
 
Hi Konstantin,

leider nicht, denn sobald die 2. Tab mehrere Einträge hat bekommst Du zu viele Ergebnisse zurück, da ja jeder Eintrag aus Tab1 mit jedem aus Tab2 verknüpft wird.

Warum? Du hast gesagt du willst alle User aus der Tab1 die nicht in Tab2 stehen, das erreichst du doch mit dem Code. Er gibt nur die User aus, von denen keine Email in Tab2 vorkommt so wie du es oben beschrieben hast oder hab ich dich falsch verstanden?
 
@Nilientes: Danke, genau das ist es! es funktioniert sogar mit "NOT IN" bei mysql 5.1!!

@Konstantin: Nein, leider liefert das query mehrere Ergebnisse pro email aus der ersten Tabelle, sobald in der 2. Tabelle mehrere Einträge vorhanden sind. Um genau zu sein so viele doppelte Einträge pro email-Adresse wie n-1 Einträge in der 2. vorhanden sind. Ist eigentlich auch logisch, da ja die email-Adressen wie im WHERE clause verlangt ungleich sind ... ;)

Trotzdem danke für Deine Hilfe!!

Superschnelle, nette und kompetente Hilfe hier! ;-)
 

Neue Beiträge

Zurück