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
, поскольку дубликаты будут включены из-за различий в исходном столбце.