Как указать разные поля для 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.

→ Ссылка