1

我正在使用 SQL,需要选择 idR 并计算该 idR 中有多少成分。

我该怎么做呢?

  • 食谱 = ( idR, recipeTitle, prepText, cuisineType, mealType)
  • 成分 = ( idI, ingrDesc)
  • 接收方 = ( 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

RecipIngr 是向您显示每个 idR 所需成分列表的工具?代码是

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

编辑:我之前误解了,但现在应该可以了

于 2013-03-26T15:49:50.363 回答
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

如果我理解您的查询,您可以试试这个:

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 回答