Будет ли запрос работать и как добавить идентификатор

(SELECT * FROM `user`)
UNION
(SELECT * FROM `list`)
where `last_inf` IS NOT NULL

Собственно будет ли данный запрос работать, необходимо из 2 таблиц выбрать все записи поле last_inf которых содержит хоть что та.

Второй вопрос, каким образом возможно добавить к записям какой нибудь идентификатор для того чтобы в цикле понять какая запись от какой таблицы...


Ответы (1 шт):

Автор решения: Volodymyr Osadchuk
  1. Ваш запрос будет работать если все колонки из таблиц user и list совпадают по именам и количеству. Но колонка last_inf будет не пустая ТОЛЬКО в таблице list.
  2. Идентификатор таблицы можно добавить в SELECT

В результате получиться:

SELECT *, 'user' as Discriminator FROM `user`
where `last_inf` IS NOT NULL
UNION
SELECT *, 'list' as Discriminator FROM `list`
where `last_inf` IS NOT NULL
→ Ссылка