tegenquery op een tabel?

Status
Niet open voor verdere reacties.

RogierVLD

Nieuwe gebruiker
Lid geworden
27 feb 2012
Berichten
4
Hallo,

Ik zit maar te rommelen maar het lukt me niet om een lijst te maken van klanten die twee verschillende brieven niet hebben gehad.

Tabel klanten: ID Naam Adres Klantnummer
Tabel brieven: ID Klantnummer Brief_nummer

Ik wil dus aan iedereen een brief sturen, behalve aan de mensen die brief 1 of brief 2 al hebben gehad. Of ze brieven 3 , 4, etc wel hebben gehad maakt niet uit.

Kan iemand me op weg helpen?

Ik doe nu wat met joins, maar krijg enorme lijsten met heel veel dubbelen.

Ik vraag me af of ik misschien een subquery moet maken maar ook hier maak ik een fout. Ik kan hem wel "omgekeerd maken"

[SQL]
SELECT * FROM klantentabel K
where K.klantnummer =
(SELECT distinct(klantnummer) FROM brieventabel
where (Brief_nummer = 160 or Brief_nummer = 161) and klantnummer = K.klantnummer)
[/SQL]

Alvast bedankt!

R.
 
SELECT * FROM klatentabel L WHERE brief_nummer != 160 AND WHERE brief_nummer != 161

dit misschien? kan niet met zekerheid zeggen maar mijn PHP instinct fluisterde me dit net in het oor
 
De tweede "WHERE" moet weg, maar verder lijkt me dat een juiste oplossing
 
Het gaat om twee tabellen.
Als ik een LEFT join doe kom ik er niet uit en krijg een enorme rij.
Ik krijg op basis van het vorige antwoord, de rij met namen en brieven, minus de 160 en 161 brief, maar in principe wil ik 1 naam. Deze mensen hebben de brief al gehad.
 
Je kunt toch een select distinct doen op specifiek de naam?

SELECT DISTINCT klantnaam FROM klantentabel JOIN brieventabel ON klantentabel.klantnummer = brieventabel.klantnummer WHERE brieventabel.brief_nummer !=160 or brieventabel.brief_nummer !=161
 
Dit is wat ik er van gemaakt heb.

select * from klantentabel
where klantnummer not in (
SELECT Klantnummer from brieventabel
where (brief_nummer = 160 or brief_nummer = 161))
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan