gluck59
@gluck59
Виртуальный глюк

Как взять способ джойна из пользовательской переменной?

Задача — изменить тип джойна в зависимости от какого-то условия.
Установим переменную по какому-то условию:
set @type = (SELECT CASE WHEN (подзапрос) = 0 
THEN 'left' 
ELSE 'inner' 
END)


Затем использовать переменную.
@type JOIN table ON ...
  • Вопрос задан
  • 71 просмотр
Решения вопроса 1
@MaximaXXl
Делаете всегда left join
а в where для inner join пишете
select a.*, b.*
from table1 a
 left join table2 b on (a.id = b.id) 
where 1=1 /*постоянное*/
and b.id is not null /*при наличии этой строки будет inner join для left join*/
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
tsklab
@tsklab
Здесь отвечаю на вопросы.
IF (подзапрос) = 0
  SELECT … LEFT JOIN
ELSE
  SELECT … INNER JOIN
Ответ написан
Ваш ответ на вопрос

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

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