2013-03-26 6 views
1

나는 SQL을 사용하고 있으며 idR과 해당 idR에있는 성분의 수를 선택해야합니다.두 개의 다른 테이블에서 데이터 선택

어떻게해야합니까?

  • 레시피 = (idR, recipeTitle, prepText, cuisineType, mealType)
  • 성분 = (idI, ingrDesc)
  • RecipIngr = (idR*, idI*)

이 내가

SELECT 
    RECIPE.idR 
FROM 
    (SELECT COUNT(*) 
    FROM INGREDIENT 
    GROUP BY INGREDIENT.idI 
    ORDER BY idI.id DESC) 

을 시도한 것입니다하지만 난 ' 각 idR에 얼마나 많은 성분이 들어 있는지 알고 싶습니다.

어떤 도움이 필요합니까?

답변

2

내가 스키마를 이해한다면,

SELECT idR, count(*) 
FROM RecipIngr 
GROUP BY idR 
0

사용에만 연관 테이블 당신이 IDR

SELECT iDR, COUNT(*) totalIngredients 
FROM RecipIngr 
GROUP BY iDR 

에만 관심이 있지만 조인에 대해 TITLE

SELECT a.iDR, a.Title, 
     COUNT(*) totalIngredients 
FROM Recipe a 
     INNER JOIN RecipIngr b 
      ON a.idr = b.idr 
GROUP BY a.iDR, a.Title 

더 많은 지식을 습득하기 위해 얻으려면, 친절을 방문하는 경우 링크 :

0
SELECT RG.IDR, COUNT(RG.IDR) 
FROM Recipingr RG 
GROUP BY RG.IDR 
0

RecipIngr 당신이 각 IDR에 필요한 재료의 목록을 보여줍니다 사람입니까? 코드가

SELECT idR, count(*) 
FROM RecipIngr 
GROUP BY idR 

편집 될 것이다 : 나는 이전에 오해하지만 난 쿼리를 이해한다면이 지금

0

작동합니다, 당신이 시도 할 수 :

select recipe.idr, count(ingredient.idi) 
from ingredient, recipe, recipingr 
where ingredient.idr=recipingr.idr 
and recipingr.idi=ingredient.idi 
group by recipe.idr 
0
SELECT *,INGREDIENT.INGREDIENT_Count 
FROM RECIPE INNER JOIN (SELECT idR,COUNT(*) INGREDIENT_Count 
         FROM RecipIngr 
         GROUP BY idR) INGREDIENT ON INGREDIENT.idR RECIPE.idR 

를이 쿼리를 사용하여 각 조리법에 대한 성분 수를 얻을 수 있습니다.

관련 문제