Как выбрать значения из двух разных таблиц на основании третьей?
Есть таблица, в которой лежат, помимо других, два поля: TYPE и USER_ID. Если TYPE == Site, то необходимо вытянуть данные из таблицы SITE, а если TYPE == Admin, то из таблицы ADMIN. Сейчас это реализовано путём выборки первой таблицы, а потом в цикле проверяется значение TYPE и по нему выполняется запрос на возврат данных, но хотелось бы оптимизировать...
Ответы (1 шт):
Автор решения: Akina
→ Ссылка
SELECT maintable.user_id,
COALESCE(site.somecolumn_1, admin.somecolumn_2) AS somecolumn
FROM maintable
LEFT JOIN site ON maintable.user_id=site.user_id AND maintable.type = 'Site'
LEFT JOIN admin ON maintable.user_id=admin.user_id AND maintable.type = 'Admin'
/* WHERE COALESCE(site.user_id, admin.user_id) */