私は SQL の初心者で、特に TSQL の初心者です。いくつかの基準に一致するすべてのレコードを読み取り、関連するカテゴリ、成分、単位などのさまざまな結果セットを読み取る SQL Server 2008 の SP を作成する必要があります。1つの要素を読み取る場合、私のSPは次のとおりです。
-- Select the recipe
SELECT Recipe.*
FROM Recipe
WHERE Recipe.RecipeId = @RecipeId
-- Select the categories themselves
SELECT Category.*
FROM Category
JOIN RecipeCategory ON RecipeCategory.CategoryId = Category.CategoryId
WHERE RecipeCategory.RecipeId = @RecipeId
-- Select the ingredient information for the recipe
SELECT RecipeIngredient.*
FROM RecipeIngredient
JOIN Recipe ON Recipe.RecipeId = RecipeIngredient.RecipeId
WHERE Recipe.RecipeId = @RecipeId
-- Select the ingredients themselves
SELECT Ingredient.*
FROM Ingredient
JOIN RecipeIngredient ON RecipeIngredient.IngredientId = Ingredient.IngredientId
JOIN Recipe ON Recipe.RecipeId = RecipeIngredient.RecipeId
WHERE Recipe.RecipeId = @RecipeId
-- Select the units that are associated with the ingredients
SELECT Unit.*
FROM Unit
JOIN Ingredient ON Ingredient.UnitId = Unit.UnitId
JOIN RecipeIngredient ON RecipeIngredient.IngredientId = Ingredient.IngredientId
WHERE RecipeIngredient.RecipeId = @RecipeId
持っているすべてのレシピを読み取るように変換するにはどうすればよいですかName like '%..%'
テーブルには何百万ものレシピがあるので、できるだけ効率的にしたいと思います。