筛选多对多关系和一对多关系在SQL Server中至少有一个结果?

时间:2020-03-27 00:22:46

标签: sql-server filter many-to-many relationship

我当前正在尝试查询一个准确引发两个表之间关系的表:Category和Brand,它们与BrandCategories(CategoryId,BrandId)相关

当前,如果我进行查询,它的工作原理就像一个超级按钮,但是,如果我要过滤结果,该结果与那些在表Product中至少有一个产品(属于该产品的一个子产品)的那些品牌有关。品牌ID。

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一起加入,以显示那些确实存在的关系,如果我想拥有不存在的关系,我会在{{1} },但仍与一个LEFT JOIN不存在。

我错过了什么吗?预先感谢...

(我在寻找其他解决方案,但发现的最接近的是:Sequelize - Many-to-Many - Get all relations for an object that has at least one relation,它甚至没有解决方案...)

0 个答案:

没有答案