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

如何从table_one(关联table_three)或table_two查询值并确定来源表?

实现方案

直接用UNION ALL合并两个查询,同时新增一个字段标记数据来源即可:

SELECT T1.*, 'table_one' AS source_table
FROM table_one T1
JOIN table_three T3 ON T3.id = T1.foreign_key
WHERE T3.field = 'value'

UNION ALL

SELECT T2.*, 'table_two' AS source_table
FROM table_two T2
WHERE T2.field = 'value';

关键说明

  • UNION ALL负责拼接两个查询的结果,相比UNION不会做去重操作,性能更高效(如果业务不需要去重,优先用这个)
  • source_table字段是自定义标识,每条数据都会明确显示来自table_one还是table_two
  • 如果table_one和table_two的字段结构差异较大,建议不要用*,而是手动指定相同数量、对应类型的字段,避免拼接报错,示例如下:
SELECT T1.id, T1.name, T1.create_time, 'table_one' AS source_table
FROM table_one T1
JOIN table_three T3 ON T3.id = T1.foreign_key
WHERE T3.field = 'value'

UNION ALL

SELECT T2.id, T2.name, T2.create_time, 'table_two' AS source_table
FROM table_two T2
WHERE T2.field = 'value';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 13:30:56