2017-04-16 118 views
0

我正在使用Python與SQLite模塊。我執行工會在兩個表中的所有語句,有沒有辦法讓每個記錄來自於表的名稱,所以當我做了獲取所有它看起來是這樣的:UNION ALL - 獲取表名

value11, value12, value13, table1 
value21, value22, value23, table2 
value31, value32, value33, table1 

唯一我可以想到的做法是通過在每個包含表名的表中創建另一列,但是如果已經有一些東西可以做到這一點,那麼這會存儲大量不必要的數據。

感謝

+0

你的做法是正確的。添加一個包含表名的列。 –

+0

@GordonLinoff,是的,在結果表中添加一列_作爲query_的一部分,如下所示。我相信OP建議爲每個包含所有行中的表名的輸入表添加一個持久列。這將是非常低效的。 – Chris

回答

2

您可以使用這樣的查詢:

SELECT 'table1' as tablename , t1.field1, t1.field2 FROM table1 
UNION ALL 
SELECT 'table2' as tablename , t2.field1, t2.field2 FROM table2 
+0

謝謝,這正是我所追求的。只要SO會允許我,我會立即解決這個問題。謝謝 – newaccount1111

3

您將包括在查詢表名:

select value11, value12, value13, 'table1' as which from table1 
union all 
select value21, value22, value23, 'table2' as which from table2 
union all 
select value31, value32, value33, 'table1' as which from table1;