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

SQL查询两张表合并后满足status=1的orderId相关问题咨询

实现方案

你可以根据是否需要去重选择对应写法:

写法1:先过滤再合并(性能更优,推荐)

提前在两张表分别过滤掉不符合条件的数据,再合并结果,减少合并阶段处理的数据量:

SELECT orderId FROM tb1 WHERE status = 1
UNION ALL
SELECT orderId FROM tb2 WHERE status = 1;

写法2:先合并再过滤

先合并两张表全量数据再统一过滤,适合需要对合并后的数据做额外复杂处理的场景:

SELECT orderId
FROM (
    SELECT orderId, status FROM tb1
    UNION ALL
    SELECT orderId, status FROM tb2
) AS combined
WHERE status = 1;

补充说明

  • 如果同一个orderId可能在两张表中重复出现,且你需要最终结果去重,把上面语句中的UNION ALL替换为UNION即可。
  • 按照你提供的测试数据,执行后返回的orderId为:003、005、007、002、008。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:54:07