如果我在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
答案 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
编辑:
请注意,第二个和第三个查询的别名是无关紧要的,但为了便于阅读,我添加了它们。