You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Vendor registration与Vendor Update表中获取最新数据?

实现方案

1. 筛选更新表的最新记录

先从Vendor Update表中,按供应商标识Vid分组,取出每组的最新修改记录。假设表中有update_time字段记录修改时间(如果是自增主键id,替换为MAX(id)即可):

SELECT *
FROM `Vendor Update` b1
WHERE b1.update_time = (
    SELECT MAX(update_time)
    FROM `Vendor Update` b2
    WHERE b2.Vid = b1.Vid
)

2. 关联两表,优先显示更新数据

用左连接将供应商注册表与上述筛选出的最新更新记录关联,通过COALESCE函数(不同数据库可替换为IFNULL/ISNULL)优先取更新表的字段值,无对应更新记录时自动使用注册表数据:

SELECT
    COALESCE(b.Vid, a.id) AS vendor_id,
    COALESCE(b.vendor_name, a.vendor_name) AS vendor_name,
    COALESCE(b.contact, a.contact) AS contact,
    COALESCE(b.address, a.address) AS address
    -- 其他字段按此格式依次添加
FROM `Vendor registration` a
LEFT JOIN (
    -- 嵌套第一步的最新记录查询
    SELECT *
    FROM `Vendor Update` b1
    WHERE b1.update_time = (
        SELECT MAX(update_time)
        FROM `Vendor Update` b2
        WHERE b2.Vid = b1.Vid
    )
) b ON a.id = b.Vid

注意事项

  • 若没有update_time字段,可使用更新表的自增主键id判断最新,将MAX(update_time)替换为MAX(id)。
  • 不同数据库的空值处理函数有差异:MySQL用IFNULL、SQL Server用ISNULL、PostgreSQL用COALESCE,按需调整。

内容的提问来源于stack exchange,提问作者Kiran Thammineni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 13:10:42