Как указать разные поля для JOIN в зависимости от значения полей в основной таблице?
Подскажите, пожалуйста, каким образом можно указать разные поля для JOIN в зависимости от значения полей в основной таблице?
SELECT par_1, par_2, par_3
FROM table_name_1
/*дальше нужна проверка:
Если par_1 is NULL, то JOIN table_name_2 on par_2 = par_2_2 and par_3 = par_3_3,
а если par_1 not is NULL, то JOIN table_name_2 on par_1 = par_1_1 */
Ответы (1 шт):
Автор решения: Akina
→ Ссылка
Да влоб:
SELECT par_1, par_2, par_3
FROM table_name_1
JOIN table_name_2 ON ( (par_1 is NULL AND par_2 = par_2_2 and par_3 = par_3_3)
OR (par_1 = par_1_1)
)
;
Только надо всем полям добавить алиасы таблиц.
Хотя разумнее два запроса и UNION ALL.