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

如何基于主键将一个表的列值追加到另一个表的对应查询结果中

实现方案

这个需求完全可实现,核心通过结果集合并逻辑完成,以下是具体操作:

方案1:查询单个指定prod_id的合并结果

直接用UNION ALL拼接两个结果集即可,以查询prod_id=1为例:

SELECT prod_filter AS filter_value
FROM tab_risk
WHERE prod_id = 1
UNION ALL
SELECT add_in_filter AS filter_value
FROM ref_filter;

执行后返回结果就是你要求的Falcon、Powerpoint、Word、Email四个值。

方案2:批量查询所有prod_id的合并结果

如果需要一次性返回所有prod_id对应的合并后filter值,可以用笛卡尔关联加合并逻辑:

-- 保留重复值版本
SELECT t.prod_id, t.prod_name, t.prod_filter AS filter_value
FROM tab_risk t
UNION ALL
SELECT t.prod_id, t.prod_name, r.add_in_filter AS filter_value
FROM tab_risk t
CROSS JOIN ref_filter r
ORDER BY t.prod_id, filter_value;

如果需要筛选特定prod_id,在SQL末尾加WHERE t.prod_id = 你要的ID即可。

注意事项

  • 若你的场景需要排除重复值(比如prod_id=3的原prod_filter是Powerpoint,和ref_filter中的值重叠,不需要返回两次),把上面的UNION ALL替换为UNION即可。
  • 需要自定义排序的话,在SQL末尾补充ORDER BY子句即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:54:06