ho una tabella "fits" strutturata così:
fits_id
description
dec_f
ra_f
dove dec_f e ra_f sono coordinate astronomiche, ma questo è irrilevante per il problema...
poi ho la seguente query che seleziona dalla tabella fits tutti gli oggetti per cui la distanza angolare da un punto definito dal $dec_c e $ra_c è minore di un dato valore ($r)
SELECT * FROM fits
WHERE 2 * ASIN( SQRT(SIN(($dec_c-dec_f)/2)
* SIN(($dec_c-dec_f)/2) + COS($dec_c) * COS(dec_f)
* SIN(($ra_c - ra_f)/2) * SIN(($ra_c - ra_f)/2))) <= $r
ovvero per semplificare:
SELECT * FROM fits
WHERE (espressione) <= $r
io però avrei bisogno di modificare la query perchè mi prendesse solo la riga per cui la distanza è minima, ovvero solo la riga che rende minima l'espressione:
2 * ASIN( SQRT(SIN(($dec_c-dec_f)/2)
* SIN(($dec_c-dec_f)/2) + COS($dec_c) * COS(dec_f)
* SIN(($ra_c - ra_f)/2) * SIN(($ra_c - ra_f)/2)))
ho fatto un po' di tentativi usando la funzione MIN di mysql ma evidentemente sbaglio...
ovvero se io faccio:
SELECT MIN(espressione) FROM fits
mi restituisce i valore minimo dell'espressione e fin qui va bene, ma come faccio ad avere il valore del fits_id della riga corrispondente?
ho provato così
SELECT * FROM fits
WHERE (SELECT MIN(espressione) FROM fits)
ma non funziona non mi restituisce nessuna riga...