mysql - 从查询结果填充sql列

标签 mysql sql

我有 2 张 table

请求

requests_votes

请求结构是:

id | req_name | content | hits
------------------------------
1  | Sample   | Some    | NULL
2  | Sample   | Some    | NULL
3  | Sample   | Some    | NULL
4  | Sample   | Some    | NULL
5  | Sample   | Some    | NULL

requests_votes结构是:

id | requestid | user_id
------------------------
10 | 2         | 2556
18 | 2         | 2522
33 | 3         | 120
44 | 2         | 1559
98 | 5         | 253

宽度以下查询我能够计算投票如何拥有项目(请求)

SELECT `requestid` , count( requests_votes.id ) AS totals
FROM `requests_votes`
INNER JOIN `requests` ON requests.id = requests_votes.requestid
GROUP BY `requestid`

输出:

requestid | totals
------------------
2         | 3
3         | 1
5         | 1

我想用 count( requests_votes.id ) 结果填充请求表中的 hits 列。

我已经在 stackoverflow 上解决了类似的问题,但找不到解决方案。

最佳答案

您可以在 UPDATE 查询中使用 JOIN:

UPDATE `requests` T1 JOIN
  (SELECT `requestid` , count( requests_votes.id ) AS totals
   FROM `requests_votes`
   INNER JOIN `requests` ON requests.id = requests_votes.requestid
   GROUP BY `requestid`) T2 ON T1.id=T2.requestid
SET T1.hits=T2.totals

关于mysql - 从查询结果填充sql列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24096139/

相关文章:

php - mysql 在两个日期/时间之间进行选择

php - PHP 中的 "SHOW COLUMNS"查询未显示第一行

mysql - 在 `select` 的情况下,可以在 `group by` 中使用多个聚合函数吗?

sql - 如何对2个查询的输出执行算术运算

sql - postgresql 不返回特定数字标准的值

.net - MySQL时间偏移(Range from within a Range)

php - 根据另一个数据库字段的数据自动填充数据库字段 50%

sql - 如何翻转 mysql 中数据结构为 : 'last name, first name' ? 的列

php - 两个表的发票问题

c++ - 如何使用 sqlite3_exec 从 sqlite3 数据库中选择数据到变量中?