Group by con selezione del prodotto con più quantità
Salve a tutti
avrei una domanda da farvi su una query che unisca il risultato di più tabelle identiche, raggruppi i prodotti per il codice EAN e mi estrapoli solo quello con quantità maggiore dando però precedenza alla tabella nr1. Mi spiego meglio:
Attualmente ho 5 tabelle identiche ed ogni tabella è associata ad un fornitore mentre una riguarda i miei articoli in magazzino, logicamente un articolo presente sulla tabella del fornitore 1 può essere presente anche sul fornitore 2 o 3 e come campo in comune. Attualmente lancio questa query
SELECT codice,prezzo,quantity,peso,ean FROM listino_mag WHERE quantity > 0 and categoria !='' UNION SELECT codice,prezzo,quantity,peso,ean FROM listino_1 WHERE quantity > 0 and categoria !='' UNION SELECT codice,prezzo,quantity,peso,ean FROM listino_2 WHERE quantity > 0 and categoria !='' UNION SELECT codice,prezzo,quantity,peso,ean FROM listino_3 WHERE quantity > 0 and categoria !='' UNION SELECT codice,prezzo,quantity,peso,ean FROM listino_4 WHERE quantity > 0 and categoria !='' UNION SELECT codice,prezzo,quantity,peso,ean FROM listino_5 WHERE quantity > 0 and categoria !=''
ma logicamente mi crea dei doppioni. io vorrei che questa query raggruppasse i prodotti per codice ean così da avere un solo prodotto ma prendesse solo quello con quantity maggiore di tutti fermo restando che se un prodotto è presente su listino_mag quindi nel mio magazzino fisico deve avere la precedenza su tutti i listini.
Attualmente faccio questa cosa con 20 righe di codice php ma vorrei capire come poter gestire il tutto tramite una query.
Grazie mille!