Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Salve ragazzi, ho questo il seguente problema: ho implementato in mysql una tabella Prodotto, con due dei campi prezzo e data. Vorrei aggiornare lo stesso campo prezzo di tutti i prodotti che hanno la differenza giorni tra la data odierna e quella del prodotto minore o uguale a 15 oppure, nel caso in cui non si presentasse questa condizione, aggiornare il prezzo del prodotto con la differenza giorni minore.
La subquery
Codice sorgente - presumibilmente Php
SELECT (prezzo*45/100)as offerta FROM Prodotto WHERE codice_reparto ='FRIGO' AND (DATEDIFF(data, CURDATE())<= 15 OR DATEDIFF(data, CURDATE())=(SELECT min(DATEDIFF(data, CURDATE())) FROM Prodotto))
va alla grande.
Il problema è l'implementazione della funzione di aggiornamento riportata qui di seguito:
Codice sorgente - presumibilmente Php
$query=("UPDATE Prodotto SET prezzo = (SELECT (prezzo*45/100) as offerta FROM Prodotto WHERE codice_reparto = 'FRIGO' AND (DATEDIFF(data, CURDATE()) <= 15 OR DATEDIFF(data, CURDATE()) = (SELECT min(DATEDIFF(data, CURDATE())) FROM Prodotto)))");
infatti mi da il seguente errore:
"ERROR 1093 (HY000): You can't specify target table 'Prodotto' for update in FROM clause"
Dove sbaglio? ... Come posso risolvere questo problema?
Grazie a tutti.
Impossibile, perchè se io effettuassi un UPDATE senza l'uso di subquery, questi mi modifica il campo che io intendo modificare ...
Consigli? Grazie ancora