SQL 질문이 있습니다. 나는 테이블의 다음 세트로 일하고 있어요 : 레시피 테이블은 5 개 조리법을 포함SQL 연관 개체 질문
, 성분은 (52) 많은 성분을 포함하고 IngredientList는 연관 기업, 여러 대의 구현입니다 조리법과 성분 사이 많은 관계. RecipeID 및 IngredientID는 기본적으로 자동 증가 ID 번호입니다.
나는 (관련 Ingredient.Name의에서'%beef%',
'%pork%',
'%chicken%',
'%lamb%
없이 즉, 요리법) 모든 채식 요리법을 표시하는 쿼리를 작성하려고 해요. 내가 겪고있는 문제는 결과 세트가 레서피 당 하나의 행이 아닌 성분 당 하나의 행을 포함한다는 것입니다.
이다이 결과 집합 (성분 표가 여기에 재료라는 점에 유의)를 생성 쿼리 : 그 쿼리 (안 52 (50 개) 결과를 생성
SELECT recipe.name AS Dish, ingredients.name
FROM (recipe JOIN ingredientlist ON recipe.recipeid=ingredientlist.recipeid
JOIN ingredients ON ingredientlist.ingredientid=ingredients.ingredientid)
WHERE ingredients.name NOT LIKE '%beef%'
AND ingredients.name NOT LIKE '%chicken%'
AND ingredients.name NOT LIKE '%pork%'
AND ingredients.name NOT LIKE '%lamb%';
,이 개 성분들이 성분에 따라 제외하기 때문이다. WHERE 절에서 제외 된 부분 문자열을 포함하는 이름).
제 목표는 레시피 테이블에서 5 개의 레시피 이름 중 3 개를 반환합니다 (관련된 ingredients.name에서 고기가 들어있는 레시피를 뺍니다).
"숙제"로 표시해야합니다. – Timothy