lillebrorMedlem sedan apr. 20041 687 inlägg
Hej,
Det var ett tag sen jag var inne i SQL-forumet. Kul att vara tillbaka och få jobba med SQL-koden igen :e
Nu vill jag bara dubbelkolla ett litet kodstycke innan jag börjar använda det.
Jag har programmerat en undersökningsfunktion med en databas i bakgrunden. När en användare har fyllt i undersökningen markeras det i databasen i tabellen tblpollsurvey med memberID och surveyID så att jag ser vilka som har genomfört den.
Nu ska jag skicka ut en påminnelse till de medlemmar som ännu inte har genomfört den.
Så här ser SQL-satsen ut för det:
$sqlSelect = "SELECT firstname, lastname, memberID, username, userpassword, email
FROM tblmember
WHERE confirmmembership = 1 AND memberID <> IN(SELECT memberID FROM tblpollsurvey)";
Verkar det stämma?!
LarsGMedlem sedan dec. 200012 465 inlägg
memberID not IN (SELECT memberID FROM tblpollsurvey)
K@llenMedlem sedan mars 20032 654 inlägg
SELECT firstname, lastname, memberID, username, userpassword, email
FROM tblmember m
WHERE m.confirmmembership = 1
AND m.memberID NOT IN
(SELECT p.memberID
FROM tblpollsurvey p)
Man kan nog använda <>, men jag hade använt not in istället. :)
lillebrorMedlem sedan apr. 20041 687 inlägg
Tack för den snabba responsen!
Jag kört på NOT. Då står det i klartext jämfört med <> :)
lillebrorMedlem sedan apr. 20041 687 inlägg
Jag kom på att jag kommer behöva särskilja på utskicken för mina webbenkäter.
Alt 1 innebär följande:
Ett mail skickas ut till samtliga medlemmar för första gången en enkät genomförs.
SELECT firstname, lastname, memberID, username, userpassword, email FROM tblmember WHERE confirmmembership = 1"
Alt 2 innebär följande:,
En påminnelse skickas ut till samtliga medlemmar som finns lagrade i tabellen tblpollsurveymailedtouser och som inte finns med i tabellen tblpollsurvey
SELECT firstname, lastname, memberID, username, userpassword, email
FROM tblmember m
WHERE m.confirmmembership = 1
AND m.memberID IN(SELECT u.memberID FROM tblpollsurveymailedtouser u)
AND m.memberID NOT IN (SELECT p.memberID FROM tblpollsurvey p)
Alt 3 innebär följande:
En mail skickas ut till medlemmar som har registrerat sig efter det att det första mailet om enkäten skickades ut till existerande medlemmar.
SELECT firstname, lastname, memberID, username, userpassword, email
FROM tblmember m
WHERE m.confirmmembership = 1
AND m.memberID NOT IN(SELECT p.memberID FROM tblpollsurvey p)
AND m.memberID NOT IN(SELECT u.memberID FROM tblpollsurveymailedtouser u)
Att jag valt att göra flera olika alternativ är för att nyatillkomna medlemmar inte ska få ett mail som uppfattas som en påminnelse när den igentligen riktar sig till medlemmar som inte svarat sedan tidigare.
Verkar SQL-satserna stämma för de olika ändamålen?!