For at gøre forvirringen endnu større, byttede jeg i mit svar om på større
og mindre, eller om du trækker data ud fra tmp eller webstats (men det
ændrer ikke ved den grundlæggende udfordring :-). Ud fra din SQL kan jeg se,
at du vil trække datoer ud fra tmp, der er MINDRE end dato(en|erne) fra
webstats. Du må stadig præcisere: Mindre end HVILKE datoer i webstats...
1) Hvis det er mindre end SAMTLIGE datoer i webstats, kan du skrive:
select testdatum
from tmp, webstats
where tmp.testdatum < SELECT MIN(datum) FROM webstats
Du behøver ikke teste mod samtlige datoer, su kan nøjes med at teste på den
mindste. Desværre kan MySQL stadig ikke håndtere subselects (jeg er ikke
sikker på om version 4.1 har fået det eller ej). I så fald må du først
trække den mindste dato ud fra webstats i en separat select og dernæst
komponere din select som ovenstående med mindsteværdien.
2) Hvis det er mindre end bare ÉN dato i webstats, gør du det samme, men med
MAX(datum) i stedet.
3) Hvis det er mindre end NOGLE datoer i webstats, må du specificere hvilke,
der er tale om. Eller rettere; HVILKEN. Hvis dato1 er mindre end dato2, og
dato3 er større end dato2, så er dato1 også mindre end dato3, så du behøver
kun én værdi. Husk på, at MySQL må sammenholde datoen i hver række i tmp med
én værdi.
Jeg håber jeg har gjort mig nogenlunde forståelig her.
Det jag slutligen vill uppnå är en uppdatering av typen:
INSERT INTO webstats (fält1, osv) SELECT tmp.fält1, tmp.osv from tmp,
webstat where tmp.testdatum < webstats.datum.
Isåfall får det bli
and webstats.id!=tmp.id (vet inte om det är effektivt).
Er der en sammenhæng mellem tmp og webstats? Hvilken? Hvordan ser de 2
tabeller ud? (DESCRIBE tmp; DESCRIBE tmp;)
Joachim