UNION ALL - 获取表名

时间:2017-04-16 17:08:41

标签: python python-3.x sqlite

我正在使用Python和SQLite模块。我正在两个表上执行union all语句,有没有办法获取每个记录来自的表的名称,所以当我进行获取时,它看起来像这样:

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

我能想到这样做的唯一方法是在每个表中创建一个包含表名的列,尽管这会存储大量不必要的数据,如果已经存在的话会做同样的事情。

由于

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:2)

您可以使用以下查询:

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