MySql 转换选择查询以更新

标签 mysql select database-table

一段时间以来,我一直在为 MySQL 更新查询而苦苦挣扎,但找不到解决方案。

我有

Table_Items:
- id
- desc
- maintenance_times

Table_Maintenances:
- id
- Item_id
- maintenance_desc

它们是相互关联的

Table_Items.id=Table_Maintenances.Item_id

现在我想计算表 Table_Maintenances 中每个项目的维护次数,并更新 Table_Items 中的列 maintenace_time

我有一个有效的选择查询,但无法弄清楚如何更新 Table_items 中的每一行(maintenance_times):

SELECT COUNT(b.Item_id) 
FROM `Table_Items` AS a
LEFT JOIN Table_maintenances as B ON a.id=b.Item_id 
GROUP BY b.Item_id

最佳答案

感谢您的示例,终于弄明白了:

UPDATE 
  Table_Items m,
  (
    SELECT a.id, COUNT(b.Item_id) cnt 
    FROM `Table_Items` AS a
    LEFT JOIN Table_Maintenances as B on a.id=b.Item_id
    GROUP BY b.Item_id
  ) q
SET m.maintenance_times = q.cnt
WHERE m.id = q.id

关于MySql 转换选择查询以更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20640158/

相关文章:

php - 制作搜索过滤器

mysql - 规范化该数据库时遇到问题

sql - 以时间戳列为条件来选择一年的数据

c# - SQLite 查询中的 "Apply joins is not supported"

sql-server - SQL计算表中的行数

mysql - SQL-Query - 使用附加动态列连接多个表

mysql - Where column = x 或跳过?

sql-server - 我的新 table 去哪儿了

python - postgresql django 中的大概行数

mysql - 在不使用触发器的情况下,在 MySQL 中使空字符串具有 0 值