Kun vis række, hvis id ikke optræder i anden tabel
Hej Eksperter!Jeg har en lidt større sql-sætning som jeg ikke helt kan få til at lykkedes, den er som følger:
SELECT
a.id,a.produkt,a.start,a.slut,a.bud_nu,a.bud_antal,p.navn,p.url,p.teaser
FROM auk_auktion a
LEFT JOIN auk_produkt p ON p.id = a.produkt
LEFT JOIN auk_produkt_kat pk ON p.id = pk.produkt
LEFT JOIN auk_auktion_bud ab ON ab.auktion = a.id
WHERE
a.status = 2
AND pk.kat = '1'
AND ab.kunde = '3'
AND ab.bud = (SELECT MAX(bud) FROM auk_auktion_bud ab2 WHERE ab2.auktion = a.id GROUP BY ab2.id ORDER BY bud DESC LIMIT 0,1)
AND (SELECT id FROM auk_auktion_vinder av WHERE av.auktion = a.id LIMIT 0,1) IS NULL
AND pk.kat = '1'
GROUP BY a.id
ORDER BY a.slut ASC LIMIT 0,40
Mit problem ligger i denne linie:
"AND (SELECT id FROM auk_auktion_vinder av WHERE av.auktion = a.id LIMIT 0,1) IS NULL"
Det skal gøre således at hvis a.id er i tabellen auk_auktion_vinder i kolonnen av.auktion så skal den IKKE vise posten. Problemet er at den lige meget hvad ikke viser posten når denne linie er med, ellers fungerer sætningen rigtigt.
Jeg går ud fra at man ikke kan sige IS NULL på en "indskudt" forespørgsel som jeg gør?
Håber der er nogen seje hajer derude :)
På forhånd tak!