从两个不同的表中选择数据

时间:2013-03-26 15:46:18

标签: sql select count

我正在使用SQL,需要选择idR以及idR中有多少成分的计数。

我该怎么做呢?

  • Recipe =(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中有多少成分。

有任何帮助吗?

6 个答案:

答案 0 :(得分:2)

如果我了解您的架构,

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

答案 1 :(得分: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

要进一步了解联接,请访问以下链接:

答案 2 :(得分:0)

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

答案 3 :(得分:0)

RecipIngr会向您显示每个idR所需的成分列表吗?代码将是

SELECT idR, count(*)
FROM RecipIngr
GROUP BY idR
编辑:我之前误解了,但现在应该可以了。

答案 4 :(得分: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

答案 5 :(得分: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

使用此查询,您可以获得每个食谱的成分计数。