mysql - 将包含 LEFT OUTER JOIN 的 SELECT 语句调整为同一表中的 UPDATE 语句 - 可能吗?

标签 mysql sql left-join

作为一名新手,我不断寻找解决问题的方法。希望有人能够提供一些解决方案。

我有一个 SELECT 语句,可以根据需要输出报告。我想做的是有一个 UPDATE 语句,用结果数字更新我的表列名为 reports 的值。任何建议将不胜感激。

SELECT
    l.id,
    l.plate,
    COUNT(*) AS Reports
FROM
    coh_items AS l
LEFT OUTER JOIN coh_items AS r
ON
    l.id >= r.id AND l.plate = r.plate
GROUP BY
    l.id,
    l.plate
;

最佳答案

这是你想要的吗?

update coh_items i left join
       (select i.id, i.plate, count(*) as reports
        from coh_items i left join
             coh_items i2
             on i.id >= i2.id and i.plate = i2.plate
        group by i.id, i.place
       ) i2
       using (id, plate)
    set i.reports = i2.reports;

左连接似乎没有必要,因为任何给定的行总是会匹配自身(假设比较列不是NULL)。

关于mysql - 将包含 LEFT OUTER JOIN 的 SELECT 语句调整为同一表中的 UPDATE 语句 - 可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53029466/

相关文章:

mysql - 缓慢的 MySQL 查询 - 如何提高性能

php - 有什么方法可以将值传递给变量和总和吗?

php - where 子句中的未知列

php - 准备($ sql)函数不适用于一个脚本

mysql - 选择数据库

mysql - mySQL 中带有左连接的嵌套集

sql - 为什么在左外连接中需要 'ON' 子句

mysql - 如何从存储过程中的两列中获取总和

php - 分页功能不适用于 1 以外的页面

Java 微秒格式化程序