select trx_id,refernce number from
(select * from abcd_1_txt union
select * from abcd_2_txt union
select * from abcd_3_txt union
select * from abcd_4_txt)
where trx_id in (123,321,1234)
在查询中,所有表格具有相同的格式,相同的列名称和相同的列数。 运行此查询后,我肯定会得到一些数据。 我的问题---有没有办法知道从哪些表中得到输出。
答案 0 :(得分:2)
尝试添加一个包含查询数量的列,如下所示
select qrynum, trx_id,refernce number from
(select 1 as qrynum,* from abcd_1_txt union
select 2,* from abcd_2_txt union
select 3,* from abcd_3_txt union
select 4,* from abcd_4_txt)
where trx_id in (123,321,1234)
正如Joe W在下面的评论中所说,您也可以使用表格的名称而不是查询号码,简短示例:
select tabname, trx_id,refernce number from
(select 'abcd_1_txt' as tabname,* from abcd_1_txt union
...
where trx_id in (123,321,1234)
但两种方式都不能消除重复,因此您可以使用union all
代替union
。其他方法是使用条件
select * from abcd_1_txt where trx_id in (123,321,1234)
select * from abcd_2_txt where trx_id in (123,321,1234)
.
.
.