E' da giorni che ci sto dietro
Chiedo aiuto a voi...

In pratica voglio trovare i fornitori convenzionati con il corriere che ha il prezzo di consegna più basso per una data categoria.

Tabella tipi_consegna
corriere
tipo
area_coperta
peso_max
dimensione_max
tempi_max
prezzo


Tabella registrazione_fornitori
nome
indirizzo
citta
mail
convenzione1
convenzione2


Tabella prodotti
id
nome
prezzo
descrizione
cond_vendita
categoria
abbinamento
fornitore
corriere

Io ho provato così ma mi controlla prima la convenzione1 e poi la colonna convenzione2 in modo indistinto...pur essendoci l'unione...

SELECT registrazione_fornitori.nome,tipi_consegna.corrier e, tipi_consegna.prezzo as min
FROM registrazione_fornitori, tipi_consegna, prodotti
WHERE registrazione_fornitori.convenzione1=tipi_consegna .corriere
AND registrazione_fornitori.nome=prodotti.fornitore
AND categoria='$categoria'
AND tipi_consegna.prezzo =
(SELECT min(tipi_consegna.prezzo)
FROM registrazione_fornitori, tipi_consegna, prodotti
WHERE registrazione_fornitori.convenzione1=tipi_consegna .corriere
AND registrazione_fornitori.nome=prodotti.fornitore
AND categoria='$categoria')
GROUP BY nome
UNION
SELECT registrazione_fornitori.nome,tipi_consegna.corrier e, tipi_consegna.prezzo as min
FROM registrazione_fornitori, tipi_consegna, prodotti
WHERE registrazione_fornitori.convenzione2=tipi_consegna .corriere
AND registrazione_fornitori.nome=prodotti.fornitore
AND categoria='$categoria'
AND tipi_consegna.prezzo =
(SELECT min(tipi_consegna.prezzo)
FROM registrazione_fornitori, tipi_consegna, prodotti
WHERE registrazione_fornitori.convenzione2=tipi_consegna .corriere
AND registrazione_fornitori.nome=prodotti.fornitore
AND categoria='$categoria')
GROUP BY nome




Grazie a tutti ragazzi...anke se solo avete letto il mio problema...