Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - problema con update e subquery
Forum - PHP - problema con update e subquery

Avatar
giocala88 (Normal User)
Expert


Messaggi: 248
Iscritto: 23/04/2008

Segnala al moderatore
Postato alle 16:38
Sabato, 26/06/2010
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

  1. 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

  1. $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. 8-)

PM Quote
Avatar
Mte90 (Member)
Guru


Messaggi: 1144
Iscritto: 25/03/2008

Segnala al moderatore
Postato alle 20:39
Sabato, 26/06/2010
da quello che dice l'errore mi sembra che non puoi modificare la tabella che su cui hai fatto la select.

PM Quote
Avatar
giocala88 (Normal User)
Expert


Messaggi: 248
Iscritto: 23/04/2008

Segnala al moderatore
Postato alle 14:45
Domenica, 27/06/2010
Impossibile, perchè se io effettuassi un UPDATE senza l'uso di subquery, questi mi modifica il campo che io intendo modificare ...8-|
Consigli? Grazie ancora

PM Quote