webForumDet fria alternativet

Vad gör jag för fel i MySQL?

Databaser & SQL

9 svar · 2 773 visningar · startad av Matsakii

Medlem sedan mars 2005265 inlägg
Frågan#1

Jag föresker göra en MySQL quiery som ser ut så här:

SELECT tblMembers.strFirstName, tblMembers.strEmail FROM tblMembers WHERE tblMemberLogin < '01-11-2006'

Men den gillar inte just < '01-11-2006' eller < "01-11-2006'"

Jag vill alltså bara ha tag på dom som inte loggat in på sajten efter 1/11/06

Vad gör jag för fel?

Medlem sedan juli 20041 183 inlägg
#2

MySQL är en databas och SQL är script-språket. Visst, det finns olika dialekter men ändå...

"SELECT tblMembers.strFirstName, tblMembers.strEmail FROM tblMembers WHERE tblMemberLogin < '01-11-2006'"

Skriver du sådär? Du har lite konstiga "fnuttar" runt datumen tyckte jag??

Ehm, borde inte tblMemberLogin vara strMemberLogin eller liknande?

Medlem sedan mars 2005265 inlägg
#3

Jag skrev lite fel för jag använde bara ' fnuttarna.

Här är det jag provat nu men fortfarande så är det just datumet '01-11-2006' och hur jag fnuttar / skriver det som verkar vara problemet enligt det error jag får.

Medlem sedan juni 2002256 inlägg
#4

Hur lyder felmeddelandet?

Som lilja säger så är det en misstänksamt märkligt namn på kolumnen.
Varför döper man en kolumn till tblMemberLogin?

Medlem sedan juni 200032 967 inlägg
#5

Använd ett vettigt datumformat. yyyy-mm-dd.

(SQL-frågor passar för övrigt en aning bättre i SQL-forumet.)

Medlem sedan apr. 20022 743 inlägg
#6

Tråden flyttas från Script från wFs medlemmar > Script - Övrigt

Mvh,
Poffe

Medlem sedan mars 2005265 inlägg
#7

Nu har jag fått det att fungera med:

SELECT DISTINCT  tblMembers.strFirstName, tblMembers.strEmail
FROM tblMembers 
INNER JOIN tblMemberLogin 
ON tblMembers.lngID=tblMemberLogin.llngUID 
WHERE tblMemberLogin.datTimeStamp<'2006-11-01'

Men det jag saknar är att den bara väljer unika emails från "tblMembers.strEmail" eftersom MySQL räknar upp samma person flera gånger annars.

Medlem sedan juni 200032 967 inlägg
#8

Har du alltså flera poster per person i medlemstabellen?

Medlem sedan mars 2005265 inlägg
#9

Hmm,
Nej jag kanske förklarade fel. Men i "tblMemberLogin" så loggas alla inloggningar och jag vill bara ha ner dom som INTE loggat in efter 2006-11-01. Men nu listar MySQL ALLA som loggat in även före 2006-11-01.

Medlem sedan juni 200032 967 inlägg
#10

Sorry, det var jag som läste fel.

Om du inte har en gammal version av MySQL hade jag gjort det med en subquery istället.

SELECT DISTINCT strFirstName, strEmail
FROM tblMembers
WHERE lngID NOT IN 
   (SELECT llngUID FROM tblMemberLogin 
WHERE datTimeStamp > '2006-10-31')
273 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
135 ms — ändringar (db)