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

时间:2012-11-28 05:31:02

标签: mysql union

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

例如,如果两个表都有结果,那么如何添加一个表示(或区分)的列,无论是来自tableA还是tableB。

1 个答案:

答案 0 :(得分:1)

试试这个,只需为表名添加虚拟列

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'