MySQL: как узнать, к какой таблице принадлежит эта запись в результате UNION

Допустим, я хочу получить записи из 2 таблиц с помощью UNION. Как я могу добавить поле к каждой записи, которое сообщит мне, к какой таблице оно принадлежит? Это просто что-то вроде этого:

id     |    title     | link            | table
-----------------------------------------------------
1      | Title 1      | somelink.html   | articles1
2      | Title 2      | link2   .html   | articles2
3      | Title 3      | link3   .html   | articles1

Заранее спасибо?

3 ответа

Решение
select some_column, 'union_1' as from_where
from table1
union 
select some_column, 'union_2' as from_where
from table2

Просто поместите это в свой Союз, как:

SELECT *, 'articles1' AS table_name FROM articles1
UNION ALL
SELECT *, 'articles2' AS table_name FROM articles2

Вы можете попробовать что-то вроде

SELECT Col1, Col2, 'Table1' TableSource
FROm Table1
UNION ALL
SELECT Col1, Col2, 'Table2' TableSource
FROm Table2

Это будет работать / имеет смысл для UNION ALL, но может вводить в заблуждение, если вы используете UNION, поскольку дубликаты будут включены из-за различий в исходном столбце.

Другие вопросы по тегам