mySql 使用行的 sum() 进行更新

标签 mysql sql sql-update

    "id"    "type"  "parent"    "country"   "votes" "perCent"
    "1"     "1"     "0"         "US"        "100"       "0"
    "2"     "1"     "0"         "US"        "50"        "0"
    "3"     "100"   "0"         "US"        "150"       "0" ->150 = sum(votes) where type = 1 and country = country
    "4"     "1"     "0"         "SE"        "50"        "0"
    "5"     "1"     "0"         "SE"        "25"        "0"
    "6"     "100"   "0"         "SE"        "75"        "0" ->75 = sum(votes) where type = 1 and country = country

我正在尝试使用各自国家/地区的所有 type=1 总数来更新 type=100

我一直在努力处理这个sql,但似乎毫无进展。基本上,我想做的是更新各自国家/地区 type=100 的选票,其总和为 type=1。 我一直在尝试调整这一点,但似乎完全失败了。你能帮忙吗?

UPDATE likes p
JOIN likes h
  ON p.country = h.country
    AND (p.type=1) AND h.type=1
SET p.votes=sum(h.votes) where p.type=100;

最佳答案

UPDATE  tableName a
        INNER JOIN
        (
            SELECT  country, SUM(votes) totalVotes
            FROM    tableName
            WHERE   type = 1
            GROUP   BY country
        ) b ON a.country = b.country
SET     a.votes = b.totalVotes
WHERE   a.type = 100

关于mySql 使用行的 sum() 进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16632691/

相关文章:

带有导致歧义的更新和选择语句的 PostgreSQL 返回表

sql - 外键是指同表的主键列

mysql - 如何为此 SELECT 查询编写更新查询?

MySQL 别名子查询不能在 where 子句中使用

MySQL:尝试在时间戳中插入值会引发错误

mysql - 在CREATE TABLE语句中,为什么这样使用 "KEY"? key `IDX_ATTRIBUTE_LABEL_ATTRIBUTE` (`attribute_id` )

sql - 如何在 SSRS 中使用 Previous 函数

java - eclipse中的sql更新查询

php - 无法使用php将数据插入数据库(mysql)

php - 这是使用 PHP 将数据插入数据库的正确方法吗?