首页 > 解决方案 > 使用下几行的最小值更新行列

问题描述

我想使用接下来的几行更新行。

我有类似的数据库

id   Product_number   qty   parent_id    type
1     AAAA                     null      PRODUCT
2      bbb             5        1          ITEM
3      ccc             8        1          ITEM

我将这种类型的数据放入表中,因此我想使用其中 parent_id 是具有列类型值 PRODUCT 等的行的 id 的那些行的最小值来更新类型为 PRODUCT 的行的 qty 列

所以结果应该是

id   Product_number   qty   parent_id    type
1     AAAA             5        null      PRODUCT
2      bbb             5        1          ITEM
3      ccc             8        1          ITEM

标签: mysqlsql

解决方案


这是你想要的吗?

update t join
       (select parent_id, min(qty) as min_qty
        from t
        group by parent_id
       ) tt
       on t.id = tt.parent_id
    set t.qty = tt.min_qty
    where t.qty is null and t.type = 'ITEM';

推荐阅读