查询中的SQL计数查询

查询中的SQL计数查询,sql,group-by,Sql,Group By,我有两个工作表,一个依赖于另一个。我希望获得独立表的信息,并计算依赖表使用每行数据的次数。在我当前的查询中,当我知道总共有38条记录时,我只得到了1的记录计数。我做错了什么 SELECT r.rid, r.name, COUNT(b.bid) AS brewtot FROM recipes r, brews b WHERE r.uid = '#cookie.id#' AND b.rid = r.rid 这应该行得通 这应该可以在查询末尾添加“groupby r.rid” 在查询末尾添加“GR

我有两个工作表,一个依赖于另一个。我希望获得独立表的信息,并计算依赖表使用每行数据的次数。在我当前的查询中,当我知道总共有38条记录时,我只得到了1的记录计数。我做错了什么

SELECT r.rid, r.name, COUNT(b.bid) AS brewtot 
FROM recipes r, brews b
WHERE r.uid = '#cookie.id#' AND b.rid = r.rid
这应该行得通


这应该可以

在查询末尾添加“groupby r.rid”

在查询末尾添加“GROUP BY r.rid”

您必须在rid上进行分组

SELECT r.rid, r.name, COUNT(b.bid) AS brewtot 
FROM recipes r, brews b
WHERE r.uid = '#cookie.id#' AND b.rid = r.rid 
group by r.rid

您是否也要查看所有brews记录?

您必须在rid上进行分组

SELECT r.rid, r.name, COUNT(b.bid) AS brewtot 
FROM recipes r, brews b
WHERE r.uid = '#cookie.id#' AND b.rid = r.rid 
group by r.rid

你想同时看到所有的brews记录吗?

我很惊讶这个查询在没有组员的情况下还能正常工作?尝试:

SELECT  r.rid
,       r.name
,       COUNT(b.bid) AS brewtot 
FROM    recipes r
JOIN    brews b
ON      b.rid = r.rid
WHERE   r.uid = '#cookie.id#'
GROUP BY
        r.rid
,       r.name

在使用我的测试设置的SQL Server上,这将返回正确的计数。

我很惊讶查询在没有group by的情况下还能工作?尝试:

SELECT  r.rid
,       r.name
,       COUNT(b.bid) AS brewtot 
FROM    recipes r
JOIN    brews b
ON      b.rid = r.rid
WHERE   r.uid = '#cookie.id#'
GROUP BY
        r.rid
,       r.name

在带有我的测试设置的SQL Server上,这将返回正确的计数。

我怀疑您要做的是添加一个

按b.rid分组

假设你的问题是“每个配方有多少种啤酒。”

此外,当配方中没有brew时,您可能还希望使用
左联接
来计算0行:

SELECT r.rid, r.name, COUNT(b.bid) AS brewtot 
FROM recipes r LEFT JOIN brews b
ON b.rid = r.rid
WHERE r.uid = '#cookie.id#'
GROUP BY b.rid

我想你要做的是添加一个

按b.rid分组

假设你的问题是“每个配方有多少种啤酒。”

此外,当配方中没有brew时,您可能还希望使用
左联接
来计算0行:

SELECT r.rid, r.name, COUNT(b.bid) AS brewtot 
FROM recipes r LEFT JOIN brews b
ON b.rid = r.rid
WHERE r.uid = '#cookie.id#'
GROUP BY b.rid