Ciao a tutti, ho una soluzione troppo pesante per il problema che vi propongo sotto, quindi chiedo aiuto. Nell'esposizione volutamente semplifico le tabelle.

tabella prodotto

id
regione
provincia
comune
quartiere
prezzo_da
prezzo_a

tabella prodotto_richiesto

id
regione
provincia
comune
quartiere
prezzo

C'è una persona che vende il prodotto e popola la tabella prodotto e una persona che richiede e popola la tabella prodotto_richiesto. Ognuna di queste persone si può collegare al sistema (che sia uno che vende oppure uno che compra) e il sistema deve mostrare tutte le corrispondenze tra le richieste e le offerte, secondo delle regole che spiego sotto.
Ogni corrispondenza è un record di una tabella così.

tabella corrispondenze

id
id_prodotto
id_richiesta

Ovviamente se uno rimane collegato, ad esempio per 30 minuti nell'arco di questo tempo il sistema deve aggiornare le corrispondenze. Fin qui dovrebbe essere tutto chiaro.

Affinchè la corrispondenza venga definita positiva, tra le 2 tabelle, devono coincidere:

regione
provincia
comune

e se diversi da 0 nella tabella richiesta_prodotto anche

quartiere
prezzo

Se non ci fosse la condizione "se presenti nella tabella richiesta_prodotto", il tutto si risolverebbe con una select tipo:
Codice PHP:
select prodotto_richiesto.id,
         
prodotto.id from prodotto_richiesto
inner join prodotto
on 
(prodotto_richiesto.regione prodotto.regione and 
      
prodotto_richiesto.provincia prodotto.provincia and 
      
prodotto_richiesto.comune prodotto.comune
Quindi adesso come potrei fare se sapessi usare bene Mysql?

La soluzione pesantissima dettata dalla mia scarsa confidenza con Mysql è selezionare tutti i dati della tabella prodotto_richiesto e per ogni record verificare se c'è corispondenza con almeno uno dei record della tabella prodotto tramite una seconda select nella tabella prodotto, la debolezza evidente di questo approccio è che quando i record della tabella prodotto_richiesto diverranno ad esempio 10000 e i record della tabella prodotto diverranno 10000 la faccenda sarà molto pesante e destinata ad appesantirsi sempre di più.

Aiuto!!