ciao ragazzi
io ho 3 tabelle:
tabellaObj:
|id|titolo|descrizione|idListino|
tabellaPrezzi:
|id|idOggetto|quantita|prezzo|idListino|
tabellaRange:
id|quantita|idListino|
praticamente ogni oggetto può avere infiniti range di prezzo...
a me serve una query che restituisca il valore della quantita e del
prezzo per ogni oggetto, cioè se ho
tabellaObj:
|1|oggetto1|blablabla|1|
tabellaPrezzi:
|1|1|50|10|1|
|2|1|100|9|1|
|3|1|150|8|1|
tabellaRange:
|1|50|1|
|1|100|1|
|1|150|1|
dovrei riuscire ad estrapolare una roba del tipo
tabellaRange.quantita | tabellaPrezzi.prezzo
| 50 | 10 |
| 100 | 9 |
| 150 | 8 |
...e fin qui tutto bene. il problema si pone se si elimina una riga in
tabellaPrezzi o se si aggiunge una riga nella tabellaRange dopo aver compilato tabellaPrezzi...
se ad esempio elimino al 2° riga |2|1|100|9|1| il
risutato della query deve essere
| 50 | 10 |
| 100 | NULL |
| 150 | 8 |
e invece no!
ho provato con
SELECT listinoRange.quantita, listinoPrezzi.prezzo
FROM listinoRange
LEFT JOIN listinoPrezzi ON ( listinoRange.value =
listinoPrezzi.quantita )
WHERE listinoRange.idListino = '1'
ORDER BY listinoRange.quantita ASC
e funziona ma solo se ho 1 solo oggetto nel db!
se ne ho 2 mi duplica (giustamente) le righe, ho provato a inserire
anche la clausola
WHERE listinoRange.idListino = '1' && listinoPrezzi.idOggetto='1'
e funziona a metà, cioè invece di darmi
| 50 | 10 |
| 100 | NULL |
| 150 | 8 |
come risultato mi dà
| 50 | 10 |
| 150 | 8 |
però è fondamentale che per ogni riga della tabella Range mi
restituisca una riga, se c'è corrispondenza con Prezzi bene, se no con
valore Null.
dove sbaglio?