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:
Quindi adesso come potrei fare se sapessi usare bene Mysql?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)
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!!