2016-01-19 2 views
0

У меня есть SQL-запрос, который использует UNION для получения данных из двух таблиц. Мне нужен способ узнать, какие данные поступают из таблицы в пользовательском интерфейсе. Есть ли способ вставить флаг, который может сказать о данных, поступающих из определенной таблицы? Я знаю, что запуск двух запросов может быть решением, но я хочу попытаться сохранить его в одном запросе. Есть ли решение?База данных: как отделить sql-запросы от двух таблиц?

+0

У меня есть решение, но я не буду показывать его вам, пока вы не покажете нам свой запрос – Gavriel

ответ

0
SELECT 'table1' AS 'table', * FROM table1 
UNION 
SELECT 'table2' AS 'table', * FROM table2 
0

Вы можете попробовать:

SELECT 'T1' as tbl, Field1,Field2,Field3 From TABLE1 UNION 
    SELECT 'T2' as tbl, Field1,Field2,Field3 From TABLE2 
0

Если объединение данных из двух таблиц, то вы должны использовать UNION ALL, не UNION. UNION берет накладные расходы для удаления дубликатов, даже если их нет.

Итак:

select t1.*, 'table1' as which 
from table1 t1 
union all 
select t2.*, 'table2' 
from table2 t2; 

Использование * предполагает, что столбцы и типы идентичны/совместимы в двух таблицах.

Смежные вопросы