Необходимо соединить 2 таблицы t1 и t2 по условию t1.Id = t2.t1Id(приоритетное условие),
либо по паре других полей(col1, col2), значения в которых составляют уникальную пару либо отсутствуют (рецессивное условие).
Т.е. хотелось бы построить что-то вроде:
Но получается пока только:
Есть ли вариант решения этой задачи без двойного join'a таблицы t2 ?
Сейчас выполняю запрос на SQL Server 2008 R2, но в принципе интересны варианты и для более поздних версий.
либо по паре других полей(col1, col2), значения в которых составляют уникальную пару либо отсутствуют (рецессивное условие).
Т.е. хотелось бы построить что-то вроде:
select t1.col3, t2.col4 from t1 left join t2 on case when t2.t1ID is not null then t1.id = t2.t1ID else t1.col1 = t1.col1 and t1.col2 = t1.col2 end
Но получается пока только:
select t1.col3, coalesce(a.col4,b.col4) from t1 left join t2 a on a.t1Id = t1.ID left join t2 b on b.col1 = t1.col1 and b.col2 = t2.col2
Есть ли вариант решения этой задачи без двойного join'a таблицы t2 ?
Сейчас выполняю запрос на SQL Server 2008 R2, но в принципе интересны варианты и для более поздних версий.