从多表sql中选择行

时间:2014-12-13 19:03:10

标签: sql sql-server-2008

如果我在SQL中有多个具有相同列的表

TABLE_A

No  date       data     Col_A
1   1/1/2011    a_1     a

表-B

No  date        data    Col_B
1   1/1/2014    b_1      b
2   1/1/2014    b_1      b

table_C

 No date       data     Col_C
 1  5/2/2014    c_1      c

什么是sql命令从三个表获取结果,其中(No = 1)像这样

table_name  No  date    data
table_A     1   1/1/2011    a_1
table_B     1   1/1/2014    b_1
table_C     1   5/2/2014    c_1

2 个答案:

答案 0 :(得分:3)

全部结合:

select 'table_A' as table_name, No, date, data from table_A
where No = 1
union all
select 'table_B', No, date, data from table_B
where No = 1
union all
select 'table_C', No, date, data from table_C
where No = 1;

答案 1 :(得分:0)

您可以使用union all运算符,并将表名作为字符串文字

SELECT 'table_A' AS table_name, [No], [date], [Col_A] AS data
FROM   table_A
WHERE  [No] = 1
UNION ALL
SELECT 'table_B' AS table_name, [No], [date], [Col_B] AS data
FROM   table_B
WHERE  [No] = 1
UNION ALL
SELECT 'table_C' AS table_name, [No], [date], [Col_C] AS data
FROM   table_C
WHERE  [No] = 1

编辑:
请注意,第二个和第三个查询的别名是无关紧要的,但为了便于阅读,我添加了它们。

相关问题