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に含まれる材料の数を数えたいだけです。

何か助けはありますか?

4

6 に答える 6

2

私があなたのスキーマを理解していれば、

SELECT idR, count(*)
FROM RecipIngr
GROUP BY idR
于 2013-03-26T15:48:34.157 に答える
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

結合についてさらに知識を深めるには、以下のリンクにアクセスしてください。

于 2013-03-26T15:48:25.343 に答える
0
SELECT RG.IDR, COUNT(RG.IDR)
FROM Recipingr RG
GROUP BY RG.IDR
于 2013-03-26T15:48:47.173 に答える
0

RecipIngrは、各idRに必要な材料のリストを表示するものですか?コードは

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

編集:私は以前に誤解しましたが、これは今うまくいくはずです

于 2013-03-26T15:49:50.363 に答える
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
于 2013-03-26T15:51:10.867 に答える
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

このクエリを使用すると、各レシピの材料数を取得できます。

于 2013-03-26T15:58:41.810 に答える