【发布时间】:2020-04-29 21:25:51
【问题描述】:
我正在使用 MariaDB 5.5
我有 2 个表,我想根据表 B 上的信息更新表 A 中的一列。
表 B 有多个我要查找的 ID 条目,但每个注册表都有一个 updated_at 列,所以我只想获取最新的注册表。
select po_number, sce_status
from infor_order
where po_number = @po
order by updated_at desc;
这将产生以下数据集,我只对“分配的部分”感兴趣
所以我想要做的是更新表 A 中的一列,通过“po_number”搜索表 B 的最新值,但是当我尝试进行选择以测试连接时,我得到表 B 的 2 个值每个注册表
select b.id, b.PO_NUMBER, b.INFOR_SCE_STATUS, infor.sce_status
from planning_backloguov b
left join (
select distinct po_number, sce_status
from infor_order
order by updated_at desc
) infor on b.PO_NUMBER = infor.po_number
where b.PO_NUMBER = @po;
如果我向左连接子查询添加“限制 1”,我不会从子查询中得到任何结果。
TL;DR:我只想根据表 B 中的最新值更新表 A 中的一列,以获取这两个表之间的共享 ID 列。
【问题讨论】:
-
我的问题最后有一个SQL查询示例
标签: mysql sql sql-update mariadb mysql-5.5