mysql—将包含左外部联接的select语句调整为来自同一个表的update语句—可能吗?

cetgtptt  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(365)

作为一个新手,我到处寻找解决问题的方法。希望有人能找出解决办法。
我有一个select语句,可以根据需要输出报告。我想做的是有一个update语句,用结果编号更新表中名为report的列。如有任何建议,将不胜感激。

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
;
vfhzx4xs

vfhzx4xs1#

这就是你想要的吗?

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 ).

相关问题