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

如何在MySQL UNION ALL联合查询中识别数据来源表?

解决方案:给查询结果添加来源表标识

很简单,你只需要在两个子查询里分别新增一个自定义字段,用来明确标记每条数据来自哪个表就行。这样前端拿到结果后,直接读取这个字段的值,就能区分是来自comments还是comments_reply,进而处理模态框的不同逻辑。

修改后的SQL语句如下:

SELECT * FROM ( 
    ( SELECT *, 'comments' AS source_table FROM comments WHERE user_id = '66' AND product_id = '3' AND status = 1 ) 
    UNION ALL 
    ( SELECT *, 'comments_reply' AS source_table FROM comments_reply WHERE user_id = '66' AND product_id = '3' AND status = 1 ) 
) results ORDER BY datetime DESC;

关键说明:

  • 在每个子查询里添加了'comments' AS source_table和'comments_reply' AS source_table,这会给每条结果新增一个名为source_table的字段,值就是对应的表名。
  • 保持UNION ALL不变,因为它不会去除重复数据,能完整保留两张表的所有符合条件的记录,这应该也是你原本的需求。
  • 前端拿到数据后,只需要判断source_table的值是comments还是comments_reply,就能针对性地处理模态框的展示逻辑了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:54:32