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

如何通过关联父表实现无时间戳衍生表的SQL增量加载

问题解决:通过父表时间戳获取衍生表增量数据

你的SQL执行报错主要有三个问题:

  • SQL语法顺序错误:WHERE子句必须写在JOIN语句之后,数据库无法识别前置的WHERE条件
  • 日期值未加单引号:字符串类型的日期必须用单引号包裹,否则会被解析为数值运算
  • 筛选条件逻辑错误:要获取最近7天的数据,应该用UPDATE_DATE >= 7天前的时间,而不是小于某个固定时间

修正后的SQL(固定日期示例)

SELECT
    cppb.* 
FROM
    COM_PHYSICAL_PDF_BLOB cppb 
INNER JOIN
    COM_PHYSICAL_FILE cpf ON cpf.ID = cppb.ID
WHERE
    cpf.UPDATE_DATE >= '2023-02-01 07:30:02.000'

更灵活的动态日期写法(自动计算最近7天)

不同数据库的日期函数略有差异,以下是常见数据库的写法:

  • MySQL/MariaDB:
SELECT
    cppb.* 
FROM
    COM_PHYSICAL_PDF_BLOB cppb 
INNER JOIN
    COM_PHYSICAL_FILE cpf ON cpf.ID = cppb.ID
WHERE
    cpf.UPDATE_DATE >= DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY)
  • SQL Server:
SELECT
    cppb.* 
FROM
    COM_PHYSICAL_PDF_BLOB cppb 
INNER JOIN
    COM_PHYSICAL_FILE cpf ON cpf.ID = cppb.ID
WHERE
    cpf.UPDATE_DATE >= DATEADD(DAY, -7, GETDATE())
  • Oracle:
SELECT
    cppb.* 
FROM
    COM_PHYSICAL_PDF_BLOB cppb 
INNER JOIN
    COM_PHYSICAL_FILE cpf ON cpf.ID = cppb.ID
WHERE
    cpf.UPDATE_DATE >= SYSDATE - 7

逻辑说明

通过INNER JOIN关联父表COM_PHYSICAL_FILE和衍生表COM_PHYSICAL_PDF_BLOB,利用父表的UPDATE_DATE字段筛选出最近7天内有更新的记录,从而获取对应的衍生表增量数据。如果需要包含父表字段,可在SELECT中添加cpf.*或指定字段。

内容的提问来源于stack exchange,提问作者TANMAY SETHI

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 07:17:37