non si puo' cambiare una struttura come quella che ti sei dato con due suggerimenti.Originariamente inviato da blekm
up
Posso identificare qualcosa sulla lista di query. per esempio:
SELECT ID_zona, nome FROM zone
WHERE ID_rife='92' and tipo='LU' and ass='B' and stato>0
order by nome
l'id_rife si presume univoco. Quindi puo' solo essere di un "tipo", mentre "ass" e "stato" potrebbero avere valori differenti, pero' a te servono (in questo caso) solo quelli con ass = B e stato > 0.
Potresti cominciare a selezionare (prima) solo quei record con ass = b e stato > 0 ed elimineresti gia' due AND. Se poi il "tipo" a questo punto diventasse indifferente rispetto all'id_rife ma ti servisse solo per un ordinamento, allora potresti usare l'ordinamento..... voglio dire non ha senso se punti ad uno specifico record con una condizione sul "tipo" che non potrebbe essere diverso da quello che e' ... eventualmente seleziona prima gli id che corrispondono al "tipo"..... prima, quando fai la lista degli id.
Se poi raccogli gli id_rife con un group_concat allora potrai mettere tutti gli id nel where con la funzione IN(). La query (una sola) avendo gia scartato lo stato = 0 e ass diverso da B diventerebbe:
select ID_zona, nome, tipo
FROM zone
where ID_rife IN(73, 74, 78, 123, 456, ecc)
order by tipo, nome
ma e' una pura considerazione delle query realizzate e non dello script precedente che genera le query.

Rispondi quotando