@Gish

MYSQLI: IF(row=1) JOIN table1 ELSE INNER JOIN table2, как?

Как правильно написать запрос по такой логике:

SELECT 
     table1.id,
     table1.name,
     table1.type,
     table1.phone,
     T3.phone AS T3_phone,
     T2.phone AS T2_phone
FROM table1
IF(table1.type=1)
( JOIN  table2 AS T2 on T2.phone = table1.phone)
ELSE
( JOIN table3 AS T3 on T3.phone = table1.phone)


Суть такая: если тип = 1 - присоединить (вытянуть) данные из таблицы 2, если тип = 0 присоединить таблицу 3 и вытянуть данные уже из нее.

Очевидная проблема - будет актуальна только одна "переменная" - или T3_phone || T2_phone. Одновременно они быть заполненными не могут, в следствии чего sql будет ругаться на обращение к пустой переменной. Как внедрить в запрос такую проверку?
  • Вопрос задан
  • 32 просмотра
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Делать LEFT JOIN обоих таблиц, включив type в условие соединения.
Ответ написан
Ваш ответ на вопрос

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

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