You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用单条SQL语句从Candidate表取最小值并写入MinTotal表?

单条SQL实现获取最小值并写入表

当然可以用单条SQL语句完成这个需求!不过你当前的语句存在几个需要修正的小问题:

  • 你引用了CandidateID.TotalVotes,但实际表名应该是Candidate(从你提供的表信息来看)
  • 直接在UPDATE语句中使用聚合函数MIN()时,需要通过子查询的方式来计算这个最小值,否则数据库无法正确解析。

正确的UPDATE写法(适用于MinTotal表已有记录的情况)

如果MinTotal表已经存在一条或多条记录,想要把所有记录的min_total列都设置为Candidate表中TotalVotes的最小值,可以用下面的语句:

UPDATE MinTotal 
SET min_total = (SELECT MIN(TotalVotes) FROM Candidate);

这个语句的逻辑是:先通过子查询(SELECT MIN(TotalVotes) FROM Candidate)算出Candidate表中TotalVotes的最小值,再将这个值赋值给MinTotal表的min_total列。

补充:如果MinTotal表为空,需要插入记录的情况

如果MinTotal表目前没有任何数据,想要插入一条包含最小值的记录,可以用INSERT...SELECT语句:

INSERT INTO MinTotal (min_total)
SELECT MIN(TotalVotes) FROM Candidate;

另一种JOIN写法(部分数据库如MySQL支持)

你也可以通过JOIN子查询的方式实现更新,这种写法在某些场景下性能更优:

UPDATE MinTotal
JOIN (SELECT MIN(TotalVotes) AS min_val FROM Candidate) AS sub_query
SET MinTotal.min_total = sub_query.min_val;

内容的提问来源于stack exchange,提问作者BigBetty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:21:43