我有两张 table ,Categories
和 RecipeCategories
**Categories**
CategoryID varchar (Primary Key)
Name varchar
**RecipeCategories**
RecipeID varchar
CategoryID varchar
Composite primary key
我正在寻找一种方法来返回所有类别的 CategoryID 和 Name,以及配方是否实际上属于该类别。我可以使用类似的东西
SELECT c.CategoryID, c.Name,
(SELECT COUNT(*)
FROM RecipeCategories
WHERE RecipeID = @recipeId AND CategoryID = c.CategoryID))
FROM Categories c
但我认为如果 table 太大,这不会扩大。
最佳答案
SELECT c.CategoryID
, c.Name
, Case When (r.RecipeID is null) Then 'No' Else 'Yes' End
FROM Categories c
left join RecipeCategories r on r.CategoryID = c.CategoryID
and r.RecipeID = @recipeId
关于SQL 子查询优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8625607/