Фильтрация отношения многие ко многим с дополнительным отношением один ко многим, которое имеет хотя бы один результат в SQL Server? - PullRequest
0 голосов
/ 27 марта 2020

В настоящее время я пытаюсь сделать запрос, который выбрасывает точно отношения между двумя таблицами: Категория и Бренд, которые связаны с BrandCategories (CategoryId, BrandId)

В настоящее время, если я делаю запрос, он работает как Очарование, но, что произойдет, если я захочу отфильтровать результаты, с теми брендами, у которых по крайней мере один продукт (который является его дочерним продуктом) в таблице Продукт связан с BrandId.

SELECT CA.CategoryId, CA.CategoryName, BR.BrandId, BR.BrandName  
FROM tblBrandCategories BC
INNER JOIN tblBrands  BR ON BC.BrandId = BR.BrandId
INNER JOIN tblCategories CA ON CA.CategoryId = BC.CategoryId
INNER JOIN tblProducts PR ON PR.BrandId = BR.BrandId

Быть Идея соединить их с INNER JOIN, чтобы показать те отношения, которые существуют, если бы я хотел иметь несуществующие отношения, я бы использовал: LEFT JOIN в tblProducts -> tblBrands, но все же бросает отношение с один Category, который не существует.

Я что-то упустил? Заранее спасибо ...

(Я искал некоторые другие решения, но самое близкое, что я нашел, было: Секвелизировать - многие-ко-многим - Получить все отношения для объекта, который имеет хотя бы один отношение , и оно даже не имеет решения ...)

...