Jag vill ta ut medelvärdet från alla rader i table A där username = B. Sedan vill jag sätta in medelvärdet i table C där username är primär nyckel.
Jag får inte riktigt till det. Någon som kan hjälpa mig?
4 svar · 711 visningar · startad av noshornin
Jag vill ta ut medelvärdet från alla rader i table A där username = B. Sedan vill jag sätta in medelvärdet i table C där username är primär nyckel.
Jag får inte riktigt till det. Någon som kan hjälpa mig?
DBMS?
I MySQL borde du kunna göra;
insert into `table_c` (`user_name`, `average`)
select
a.`username` as user_name,
avg(a.`value_field`) as average
from
`table_a` as a
where
a.`username`='B'
group by
a.`username`
Det är mysql. Men jag sa fel, jag menade att man skulle uppdatera table_c. Det finns redan en rad där användaren står.
Jag är inte säker på att följande fungerar, men enligt dokumentationen så går det inte att "...update a table and select from the same table in a subquery" -- det bör alltså gå mot en annan tabell.
update
`table_c`
set
`average`=(select avg(`value_field`) from `table_a` where `username`='B' group by `username`)
where
`user_name`='B'
Det fungerade. Tack så mycket.