Имеется две таблицы - messages и comments. В одной из этих таблиц есть строка, у которой content == 'hello'. Нам нужно знать в какой из таблиц есть эта строка (значение уникально) и получить user_name для этой строки. То есть, из базы мы должны получить такой ответ, который позволил бы нам однозначно идентифицировать из какой таблицы этот ответ получен. Человеческим языком - какой пользователь данный контент опубликовал, и было это сообщением или комментарием. Желательно это сделать одним запросом. Я пробовал делать через UNION, но что-то либо знаний не хватает (мускул не мой конёк), либо руки из задницы.
SELECT author_name, 'messages' tablename
FROM messages
WHERE content = 'hello'
UNION
SELECT author_name, 'comments'
FROM comments
WHERE content = 'hello';
Магия. Стоило только отправить вопрос на StackOverflow, всё получилось. Сделал так:
SELECT messages.author_name as messages_author_name FROM messages WHERE messages.content = 'hello'
UNION
SELECT comments.author_name as comments_author_name FROM comments WHERE comments.content = 'hello';
Желаемый результат достигнут.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости