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

如何将LEFT JOIN与UNION结合?SQL查询异常问题求助

问题分析与解决

你的SQL语句存在逻辑错误:WHERE筛选条件仅作用于Product02的查询,而Product01的查询没有任何过滤规则,所以无论你怎么修改LIKE条件,Product01的所有product_id都会被纳入结果集,这就是你感觉总是选中同一批行的原因。

修正方案一:分别过滤两表后再合并

SELECT product_id
FROM Product01
WHERE product_code LIKE '%"A1234"%'
UNION
SELECT product_id
FROM Product02
WHERE product_code LIKE '%"A1234"%'
ORDER BY product_id ASC

修正方案二:先合并两表再统一过滤(逻辑更直观)

SELECT product_id
FROM (
    SELECT product_id, product_code FROM Product01
    UNION ALL
    SELECT product_id, product_code FROM Product02
) AS combined_tables
WHERE product_code LIKE '%"A1234"%'
ORDER BY product_id ASC
  • 用UNION ALL代替UNION能提升性能,若需要去重,可在外层查询添加DISTINCT关键字
  • 若实际数据中product_code不含双引号,直接使用'%A1234%'即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 11:06:48