View Full Version : [query] dove sbaglio?
TorpedoBlu
16-05-2005, 11:21
query SQL:
UPDATE utente SET budget = ( (
SELECT budget
FROM utente
WHERE nick = 'alex'
) - (
SELECT valore
FROM giocatori
WHERE cognome = 'zola' ) )
WHERE nick = 'alex'
Messaggio di MySQL:
#1093 - You can't specify target table 'utente' for update in FROM clause
dove sbaglio? le tabelle sono
utente(nick,psw,budget)
giocatori(cognome,ruolo,valore)
RaouL_BennetH
16-05-2005, 11:38
non vorrei prendere una cantonata ma credo tu debba fare così:
UPDATE nome_tabella
SET campi_da_aggiornare WHERE condizione = qualcosa;
TorpedoBlu
16-05-2005, 11:58
infatti è come ho fatto (il valore di budget è il valore attuale meno il valore del giocatore appena comprato)
TorpedoBlu
16-05-2005, 12:02
2000 messaggi :D
TorpedoBlu
16-05-2005, 13:48
mySQL 4.1.9
php 4.3.10
Apache 1.3.33
Apache 1.3 ??!?!!? Sei rimasto un po' indietro ? :D Metti al 2.0 di corsa...
Comunque potresti fare una cosa del genere:
SELECT @a := budget
FROM utente
WHERE nick = 'alex';
SELECT @b := valore
FROM giocatori
WHERE cognome = 'zola';
UPDATE utente SET budget = (@a - @b) WHERE nick = 'alex';
Se ti si ripresenta l'errore dopo facciamo un valutazione diversa...
TorpedoBlu
16-05-2005, 21:15
ho apache 1.3.33 perchè ho installato easyPHP che mi ha fatto tutto in 1 minuto e 0 sbattimenti, mi serve per un progettino in università e non ho bisogno di opzioni particolari.
la query l'ho divisa come mi hai scritto tu e funziona, non so perchè non funzionasse prima.
grazie, la discussione lasciala aperta per ora perchè ci sono altre parti da implementare e nelle prossime ore potrei dover chiedere ancora.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.