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

如何编写SQL从customer/contact表查询数据并标记来源表

SQL查询实现方案

实现该需求的核心逻辑是通过UNION ALL/UNION拼接两个表的查询结果,同时新增自定义字段标注数据来源,具体写法如下:

基础查询(仅返回姓名+来源标记)

假设customer表姓名字段为cust_name,contacts表姓名字段为contact_name,可直接使用以下语句:

SELECT 
    cust_name AS 姓名,
    'customer' AS 数据来源
FROM customer

UNION ALL

SELECT 
    contact_name AS 姓名,
    'contacts' AS 数据来源
FROM contacts;

说明

  • 若不需要对合并后的结果去重,优先使用UNION ALL,执行效率远高于会自动去重的UNION
  • 若两个表的姓名字段名完全一致,AS 姓名的别名仅需在第一个SELECT语句中声明即可,后续查询会自动继承

关联活动数据表的扩展查询

如果需要和记录活动数据的表关联匹配活动信息,可将上述查询作为子查询,通过编号字段关联即可,示例如下:

SELECT 
    t.姓名,
    t.数据来源,
    act.活动内容,
    act.活动时间
FROM 活动数据表 act
INNER JOIN (
    SELECT 
        cust_id AS 关联编号,
        cust_name AS 姓名,
        'customer' AS 数据来源
    FROM customer
    UNION ALL
    SELECT 
        contact_id AS 关联编号,
        contact_name AS 姓名,
        'contacts' AS 数据来源
    FROM contacts
) t ON act.关联编号 = t.关联编号;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:36:05