Как задать условие в mysql запросе?

И снова здравствуйте! :) Подскажите пожалуйста, есть таблицы вида
table:
id | c_id | type
light:
light_id | light_name
hard:
hard_id | hard_name
Как сделать запрос, что бы при type=1 делал выборку из таблицы light (c_id = light_id), а при type=2 из hard (c_id = hard_id)?

Спасибо :)
  • Вопрос задан
  • 9742 просмотра
Решения вопроса 1
Гугл по словам "mysql if join" сразу же выдал ответ и альтернативу.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
jakulov
@jakulov
Может что-то такое подойдет
select t.*, if(l.light_name is not null, l.light_name, h.hard_name) as type_name from `table` t 
left outer join light l on l.light_id = t.c_id
left outer join hard h on h.hard_id = t.c_id
where
if(t.type = 1, l.light_id = t.c_id, l.light_id < 0)
or
if(t.type = 2, h.hard_id = t.c_id, h.hard_id < 0)
Ответ написан
Ваш ответ на вопрос

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

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