sql subquery vraagje
Ik zit met een klein probleempje.
Ik ben een nieuwsbrieven systeem aan het maken. In een database heb ik een tabel met emailadressen, een tabel met nieuwsbrieven, en een tabel met daarin welke nieuwsbrief al naar welk emailadres is gestuurd.
Wat ik nu wil, is een sql query maken, die als resultaat teruggeeft, welke emailadressen een bepaalde nieuwsbrief nog níet hebben gehad. Ik zal dus gebruik moeten maken van een subquery, alleen lukt het mij niet helemaal.
Wat ik nu heb is dit, maar dit werkt alleen niet ;)
Code (php)
1
2
3
2
3
<?php
$sql = 'SELECT * FROM emailadressen WHERE id NOT (SELECT emailadres_id FROM nieuwsbrieven_historie WHERE nieuwsbrief_id = "'.mysql_real_escape_string($nieuwsbrief).'" GROUP BY emailadres_id) ';
?>
$sql = 'SELECT * FROM emailadressen WHERE id NOT (SELECT emailadres_id FROM nieuwsbrieven_historie WHERE nieuwsbrief_id = "'.mysql_real_escape_string($nieuwsbrief).'" GROUP BY emailadres_id) ';
?>
Kunnen jullie mij verder helpen?
Alvast bedankt.
Gewijzigd op 01/01/1970 01:00:00 door Igor
Waarom gebruik je de group by in de subquery ? Als iedere nieuwsbrief maar 1x naar een adres verstuurd mag worden, dan hoort er een UNIQUE op de kolommen 'adres_id' en 'nieuwbrief_id'. Zo niet dan lijkt een SELECT DISTINCT mij beter op zijn plaats.
Maar met SELECT DISTINCT i.p.v. GROUP BY moet hij dus wel werken?
Gewijzigd op 01/01/1970 01:00:00 door Igor
Je krijgt een suggestie, werk er dan mee ;)
btw, ik weet dat het vroeg is, maar je leest iets niet,
"Ik denk dat het gebruik van NOT IN je verder zal helpen. "
Ik ben het daar mee eens.
Daar had ik inderdaad overheen gelezen. Laten we het er maar op houden dat het nog vroeg was :P
Bedankt :D
Of is dat slomer?