Почему бы не создать представление, представляющее собой объединение таблиц, объединяющих столбцы, по которым вы хотите выполнить поиск, в одну, а затем выполнить поиск по этому агрегированному столбцу?
Вы могли бы сделать что-то вроде этого:
select 'tenants:' + ltrim(str(t.Id)), <shared fields> from Tenants as t union
select 'landlords:' + ltrim(str(l.Id)), <shared fields> from Tenants as l union
...
Это требует, чтобы некоторая логика была встроена из запросов клиента; он должен знать, как изготовить ключ, который он ищет, чтобы искать в одном поле.
Тем не менее, вероятно, будет лучше, если у вас будет отдельный столбец, который содержит значение типа (например, арендодатель, арендатор), а затем фильтр по типу и идентификатору, поскольку он будет в вычислительном отношении менее дорогим (и может оптимизируйся лучше).