Вы можете использовать union all
и агрегацию, чтобы узнать, какие ключи и в каких таблицах:
select base_key, max(in_2) as in_2, max(in_3) as in_3
from ((select distinct base_key, 1 as in_2, 0 as in_3
from table2
) union all
(select distinct base_key, 0 as in_2, 1 as in_3
from table3
)
) t
group by base_key;
Возвращает «1», если ключ находится в таблице, и «0», если это не так. SQL Server не имеет логических типов, и для этой цели кажется глупым создавать строку.
Если вам действительно нужно имя вместо значения ключа, просто присоедините его.