Как в зависимости от значения атрибута тип автора делать выборку имени из разных таблиц (WHEN, CASE)?

Есть представление, в котором вывожу id, имя автора и текст сообщения.

В таблице с сообщениями ввел атрибуты id автора и тип автора.

Как в зависимости от различного типа автора получать значения имени из разных таблиц?

SELECT 
messages.id
messages.text
		case messages.typeauthor	
			when '1'
			
			when '2'
			
 FROM messages

Значение id автора messages.authorid.
В первом случае нужно сделать такой запрос:

SELECT idmc.name
FROM idmc
WHERE idmc.id = messages.authorid

Во втором:

SELECT suppliers.name
FROM suppliers
WHERE suppliers.id = messages.authorid
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
0xD34F
@0xD34F
SELECT
  m.id,
  m.text,
  CASE m.typeauthor
    WHEN '1' THEN
      (SELECT name FROM idmc WHERE id = m.authorid)
    WHEN '2' THEN
      (SELECT name FROM suppliers WHERE id = m.authorid)
  END
FROM messages m
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы