2014-12-13 3 views
1

, если у меня есть несколько столов с одинаковыми столбцами в SQLвыберите строки из нескольких таблиц SQL

TABLE_A

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

TABLE_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 

ответ

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; 
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 

EDIT:
Обратите внимание, что псевдоним второго и третьего запросов несуществен, но я добавил их для удобства чтения.