ho provato ma non mi funziona... proviamo a semplificare: lasciando perdere la tabella contatti che andrebbe semplicemente in join, data la tabella indirizzi come posso trovare l'unico indirizzo per contatto che ha come caratteristica o _PREF=1 o _POS=MIN(_POS) (il minore dei _POS collegati al id_contatto)? Se risolvo questo il resto credo sia facile.
Per ora sono riuscito a realizzare la query che mi ordina i dati, ma dopo non riesco a estrarre solo quello che mi interessa:
Codice PHP:
SELECT _POS,_PREF,id_contatto,ind,id AS idInd,
(SELECT if(_PREF=1,0,if(_POS=MIN(_POS) AND _PREF=0,1,0)) AS PESO FROM indirizzi WHERE id=idInd) AS PESO
FROM indirizzi ORDER BY PESO
Grazie