Steen Broelling <strix@mail.dk> skrev:
> "SELECT obsid FROM FUGLEDATA a, TURDATA b, ADF c WHERE a.turid
> = b.turid AND a.adf = c.adfid AND a.adf = '2' OR a.adf = '3'
> OR a.adf = '5' OR a.adf = '6' OR a.adf = '18' OR a.adf = '32'
> OR a.adf = '55' OR... og så videre";
>
> Kan det gøres smartere (det kan det sikkert), men hvodden'!??
[Med forbehold - jeg kender ikke til mySQL]
Prøv at bruge standard joinsyntaks:
SELECT obsid FROM FUGLEDATA a
INNER JOIN TURDATA b ON a.turid = b.turid
INNER JOIN ADF c ON a.adf = c.adfid
WHERE a.adf IN ('2','3','5',....)
[understøtter mySQL IN-syntaksen?]
Indholdet i a.adf ser ud til kun at være heltal - hvis det er sådan
bør du også gemme dem i et taltypefelt.
Meget afgørende for hastigheden - specielt når du bruger så mange
OR-betingelser - er dine indeks. Er der indeks på a.adf?
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO -
www.fiduso.dk)