[英]Using a join or sub-query to update each row in table MYSQL
I'm trying to update two attributes/ columns in one table, from data in another table created using a subquery.我正在尝试从使用子查询创建的另一个表中的数据更新一个表中的两个属性/列。 Heres my code.这是我的代码。
CREATE TABLE tmpempcnt (SELECT projno, count(*) as ct FROM Pworks group by projno);
UPDATE Proj
INNER JOIN tmpempcnt ON Proj.projno = tmpempcnt.projno
SET Proj.empcnt = tmpempcnt.ct;
CREATE TABLE (SELECT projno as p, SUM(hours) as h FROM Pworks GROUP BY projno);
UPDATE Proj
INNER JOIN tmphrstotal ON Proj.projno = tmphrstotal.p
SET Proj.hrstotal = tmphrstotal.h;
Is there a way to do this without creating a table beforehand?有没有办法在不事先创建表格的情况下做到这一点? Thanks谢谢
mysql allows a multitable update https://dev.mysql.com/doc/refman/8.0/en/update.html . mysql allows a multitable update https://dev.mysql.com/doc/refman/8.0/en/update.html . In your case在你的情况下
drop table if exists pworks,proj;
create table proj(projno int,empcnt int, hrstotal int);
create table pworks(projno int,hours int);
insert into proj values(1,null,null);
insert into pworks values
(1,10),(1,10);
update proj
join (select projno,count(*) cnt,sum(hours) hrs from pworks group by projno) s on s.projno = proj.projno
set empcnt = cnt,hrstotal = hrs;
may do可能会
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.