MySQL проверить наличие данных в одной из двух таблиц

160
03 июля 2019, 09:40

Имеется две таблицы - messages и comments. В одной из этих таблиц есть строка, у которой content == 'hello'. Нам нужно знать в какой из таблиц есть эта строка (значение уникально) и получить user_name для этой строки. То есть, из базы мы должны получить такой ответ, который позволил бы нам однозначно идентифицировать из какой таблицы этот ответ получен. Человеческим языком - какой пользователь данный контент опубликовал, и было это сообщением или комментарием. Желательно это сделать одним запросом. Я пробовал делать через UNION, но что-то либо знаний не хватает (мускул не мой конёк), либо руки из задницы.

Answer 1
    SELECT author_name, 'messages' tablename 
    FROM messages 
    WHERE content = 'hello'
UNION
    SELECT author_name, 'comments' 
    FROM comments 
    WHERE content = 'hello';
Answer 2

Магия. Стоило только отправить вопрос на 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';

Желаемый результат достигнут.

READ ALSO
Переписать запросы из sqlite to my sql

Переписать запросы из sqlite to my sql

2update users set data =datetime('now','localtime') where userId=" + chat_id + "

140
Две кнопки и переходящий цвет [закрыт]

Две кнопки и переходящий цвет [закрыт]

Всем привет! Нужна помощь

166
Роль атрибута for в данном примере

Роль атрибута for в данном примере

В моей книге был приведён следующий пример:

150
Ошибка в FireFox

Ошибка в FireFox

данный кусок кода выдает ошибку в firefox, хотелось бы понять в чем проблема ошибка ReferenceError: event is not defined Весь код находится тут

140