salve ragazzi, mi chiedevo come potrei scrivere una query che:
MI SOMMA I VALORI DI UN CAMPO X NELLA TABELLA A
PRENDE IL RISULTATO E LO METTE IN UN CAMPO Y DI UN INSERT DELLA TABELLA B
del tipo:
update tabellaB set y=( sum(tabellaA.x) ) where id=2
salve ragazzi, mi chiedevo come potrei scrivere una query che:
MI SOMMA I VALORI DI UN CAMPO X NELLA TABELLA A
PRENDE IL RISULTATO E LO METTE IN UN CAMPO Y DI UN INSERT DELLA TABELLA B
del tipo:
update tabellaB set y=( sum(tabellaA.x) ) where id=2
si vivono molte vite e si muore una volta sola
pero' vedi, non si puo' fare tutto quel lavoro nella pagina php. il metodo migliore e' lasciare sbrigare il lavoro al database, quindi l'ottimale sarebbe avere una sola query.
questo perche' il database e' velocissimo a sbrigare le sue query, mentre invece l'invio della query dalla pagina php al database e l'invio della risposta del database alla pagina e' un processo.
si vivono molte vite e si muore una volta sola
si sono sempre gli stessi.
esempio:
tabella A (id, x)
1 - 6
2 - 2
3 - 9
tabella B (id, y)
1 - 0
2 - 0
3 - 0
io voglio fare:
somma nella tabella A tutti i valori nella colonna x
e mettili dentro alla colonna y, insert 2, tabella B
così da avere poi:
tabella A (id, x)
1 - 6
2 - 2
3 - 9
tabella B (id, y)
1 - 0
2 - 17
3 - 0
si vivono molte vite e si muore una volta sola
Se hai mysql 4.1 puoi fare come hai detto all'inizio.
UPDATE tabB
set campo = (select count(campo) from tabA)
where id = nn
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
non ho mysql 4!!!
(sapesti quanti problemi con le date...)![]()
si vivono molte vite e si muore una volta sola
Prova con una tabella temporanea. Funziona sempre.
con phpmyadmin le due queries le devi fare nella stessa finestra query, contemporaneamente. Da php fai due queries una a seguire l'altra.codice:create temporary table temp select sum(x) as somma from tabA; update tabB, temp set y = temp.somma where id = 2;
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.