такого
select * from table 1 tb1
left join table 2 analytics
on
tb1.источник = analytics.источник and
if null(tb1.id кампании = analytics.id кампании,
tb1.название кампании = analytics.id кампании)
Или как бы вы решили эту задачу?)
JOIN делать МОЖНО. Но НЕ НУЖНО. Причина одна -- производительность. Как правило, у таких JOIN ов она либо плохая, либо очень плохая. Зависит это от данных. Их надо знать, а знаешь их только ты. Из этих условий это tb1.источник = analytics.источник оптимизируемое, а это and if null(tb1.id кампании = analytics.id кампании, tb1.название кампании = analytics.id кампании) нет. Если у тебя запрос ТОЛЬКО по оптимизируемому условию даёт хорошую производительность, то иметь доп. условия допустимо. Если нет -- то запрос просто будет так медленно работать, что это фактически будет означать его неработоспособность
Обсуждают сегодня