我有两个表,即用户和库存。表users中的用户id(id)是对表库中current_owner列的外键约束。我想根据users.id = stock.current_owner的行数更新users表中名为holdings的列。我尝试了以下查询,但似乎无法正常工作。
ALTER TABLE users ADD holdings INT UNSIGNED AS (COUNT * FROM stock WHERE stock.current_owner = users.id)
我需要有关此查询的帮助。谢谢
答案 0 :(得分:1)
您需要两个查询
使用alter添加列
ALTER TABLE users ADD holdings INT UNSIGNED;
基于用户和count()子查询之间的联接,使用Update填充列
UPDATE users
INNER JOIN (
select current_owner, count(*) mycount
from stock
GROUP BY current_owner
) t ON t.current_owner = users.id
SET user.holdings = t.mycount
;