mysql - 添加列来说明联合结果来自哪个表

标签 mysql union

当我使用UNION命令搜索多个表时,如何选择每个结果来自哪个表?

例如,如果两个表都有结果,我如何添加一个列来说明(或区分)它是来自 tableA 还是 tableB。

最佳答案

试试这个,只需添加一个虚拟列作为表的名称。

SELECT *
FROM
(
    SELECT *, 'tableA' as tableName FROM tableA
    UNION ALL
    SELECT *, 'tableB' as tableName FROM tableB
    UNION ALL
    SELECT *, 'tableC' as tableName FROM tableC
) s
WHERE   colName = 'hello'

关于mysql - 添加列来说明联合结果来自哪个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13598450/

相关文章:

mysql - 在 MySQL 中使用 UNION 而不是 OR?

php - MySQL GROUP BY 和条件

mysql - ActiveRecord 十进制类型字段截断为整数

mysql - 执行插入/删除批处理 spring-jdbc/mysql 的最佳方法

mysql - 从条件表中获取 WHERE 子句的条件

java - 如何在Sqlite中优先处理一张表

MySQL 日志查询不使用索引和 UNION 误报或错误?

php - 如何正确使用 Union 和 Order BY?

sql-server - UNION 和 CROSS JOIN 有什么区别?

mysql - 如何编写查询来获取主键名称