1
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)

在查询中,所有表都具有相同的格式、相同的列名和相同的列数。运行此查询后,我肯定会得到一些数据。我的问题 --- 有什么方法可以知道我从这些表中的哪个表中得到输出。

4

1 回答 1

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)
  .
  .
  .
于 2013-09-09T19:34:07.533 回答