[mysql] Kunden selektieren, die keine Produkte bestellt haben?
-
Hallo
also ich habe 2 Tabellen:----------- kunden ----------- ID | name
-------------------------- produkte -------------------------- ID | kunden_id | bezahlt
Zu selektieren, welche Kunden Produkte bestellt haben ist ja ganz einfach:
SELECT DISTINCT kunden.ID where kunden.ID=produkte.kunden_id;
Wie kann man jetzt aber die Kunden selektieren, die keine Produkte bestellt haben? Also die Kunden heraussuchen, deren IDs nicht in der Spalte produkte.kunden_id sind?
Ist eigentlich ganz einfach - aber ich komme grade nicht drauf.
Thx, devent.
-
Auch wenn das nichts mit Webzeugs zu tun hat sondern eher in das Forum "Datenbanken" passt:
SELECT DISTINCT kunden.ID from kunden where kunden.ID NOT IN (SELECT kunden_id FROM produkte)
Tntnet
-
SELECT id FROM kunden k LEFT JOIN produkte p ON (k.id = p.kunden_id) WHERE p.kunden_id is null
@tntnet das DISTINCT kannst Du Dir an so einer Stelle normalerweise sparen
-
Auch wenn das nichts mit Webzeugs zu tun hat sondern eher in das Forum "Datenbanken" passt:
ja hast Recht, sorry und danke.
-
Airdamn schrieb:
SELECT id FROM kunden k LEFT JOIN produkte p ON (k.id = p.kunden_id) WHERE p.kunden_id is null
@tntnet das DISTINCT kannst Du Dir an so einer Stelle normalerweise sparen
Das habe ich mir auch gedacht. Ich habe es aus der origialen Query. Aus der Frage geht allerdings nicht explizit hervor, daß kunden.id eindeutig ist.