2012-11-28 59 views
0

當我使用UNION命令來搜索多個表時,如何選擇每個結果來自哪個表?添加列來說明哪個表的聯合結果是從

例如,如果兩個表都有結果,我如何添加一個可以表示(或區分)它是來自tableA還是tableB的列。

+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' 
+0

謝謝!這是有道理的。 –