【问题标题】:Sql Select a minimum value from a table column and insert the results in another table column in one SQL statementSql 从一个表列中选择一个最小值,并在一个 SQL 语句中将结果插入到另一个表列中
【发布时间】:2018-10-28 14:18:28
【问题描述】:

我正在尝试从 Candidate 表中获取最小值并将该值插入 MinTotal 表中。你能在一条 SQL 语句中同时完成这两项工作吗?

这是我的 SQL 语句:

UPDATE MinTotal SET MinTotal.min_total=  MIN(CandidateID.TotalVotes); 

【问题讨论】:

  • 您使用的是哪个 dbms?

标签: mysql sql insert minimum


【解决方案1】:
UPDATE MinTotal a
INNER JOIN (SELECT MIN(c.TotalVotes) min_vote, c.CandidateID FROM Candidate c 
GROUP BY c.CandidateID) b ON b.CandidateID = a.CandidateID 
SET a.min_total = b.min_vote;

试试上面的。这是针对每个候选人的,否则您可以使用提供的其他答案。

【讨论】:

    【解决方案2】:

    您必须使用 select 才能正确设置 MIN()。 这样做的一种方法是:

    UPDATE MinTotal
    SET 
       min_total = Cmin.minresult
    FROM (
        SELECT MIN(TotalVotes) as minresult
        from CandidateID
    ) Cmin
    

    一般来说,这是解决问题的一种方法。在这种情况下,您将为 MinTotal 表中的每一行设置 minresult。如果您不希望这样,您可能需要更具体地了解您想要的输出,并在您的问题中添加一些示例

    【讨论】:

      【解决方案3】:
      UPDATE MinTotal   
      SET MinTotal.min_total = (
         SELECT MIN(TotalVotes)
         FROM CandidateID 
      );
      

      【讨论】:

        猜你喜欢
        • 2017-11-13
        • 2019-05-02
        • 2022-01-24
        • 2019-01-11
        • 2013-12-29
        • 1970-01-01
        • 2013-12-14
        • 1970-01-01
        相关资源
        最近更新 更多