Для пустых строк вы можете использовать один и тот же запрос для обоих ограничений.Я полагаю, вы используете SQL server
Используйте левое объединение для извлечения строк, если таблица b пуста
select a.id,a.name
from tableA a left join tableB on a.id = b.id
Демо:
declare @tableA table (id int, name varchar(10))
insert into @tableA
select 1, 'name'
union all
select 2,'name1'
union all
select 3,'name2'
declare @tableb table (id int, name varchar(10))
select a.id,a.name
from @tableA a left join @tableb b on a.id = b.id