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

如何将前序查询结果作为WHERE子句条件用于Oracle后续查询?

直接引用子查询结果筛选数据的Oracle实现

当然可以直接引用前序查询的结果,无需手动输入ID,以下是两种常用实现方式:

方法一:IN子句嵌套子查询

这是最直观的写法,将筛选BATCH_ID的查询作为子查询嵌入IN条件中:

SELECT RECIPE_ID
FROM LG_EBR_ACTION_LIST
WHERE BATCH_ID IN (
    SELECT BATCH_ID
    FROM PM_BATCH_ST
    WHERE COLUMN_DATA1 IS NULL
)

数据库会优先执行括号内的子查询,得到所有COLUMN_DATA1为空的BATCH_ID列表,再用该列表匹配LG_EBR_ACTION_LIST表的记录,返回对应的RECIPE_ID。

方法二:JOIN关联查询

若数据量较大,关联查询的性能表现可能更优,需添加DISTINCT避免重复结果:

SELECT DISTINCT la.RECIPE_ID
FROM LG_EBR_ACTION_LIST la
JOIN PM_BATCH_ST pb ON la.BATCH_ID = pb.BATCH_ID
WHERE pb.COLUMN_DATA1 IS NULL

两种写法均无需手动维护ID列表,会自动同步子查询的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 20:22:30