Ваш собственный ответ правильный.
Вот таблицы, которые вы описали со связями:

Я заполнил таблицынекоторые руководства и копии вставили свой собственный SQL
(затронуто 50 строк)
Попробуйте эту проверку tableA
имеет значения
Select COUNT(*) from [tableA]
И tableB
Select COUNT(*) from [tableB]
, если они оба имеют количество> 0 Сколько элементов в tableA
имеют хотя бы одно значение в tableB
--Show all the raw data
Select tableA.*,(select count(*) from tableB where tableA.id = tableB.id)VolumeOfAddresses
FROM tableA
--or Group and count it
Select VolumeOfAddresses,count(*) NameCount
FROM (Select tableA.*,(select count(*) from tableB where tableA.id = tableB.id)VolumeOfAddresses
FROM tableA) a
group by a.VolumeOfAddresses
--or express that as a string of text for simplicity
Select cast(count(*) as varchar(10)) + ' Names exists which each have an address COUNT of ' + cast(VolumeOfAddresses as varchar(10))A_TextString
FROM (Select tableA.*,(select count(*) from tableB where tableA.id = tableB.id)VolumeOfAddresses
FROM tableA) a
group by a.VolumeOfAddresses
Пример результата из последнегозапрос в моем тестировании показывает:
- 50 Существуют имена, каждое из которых имеет адрес COUNT 0
- 50 Имена, каждое из которых имеет адрес COUNT 1