mysql中的连接表

mysql中的连接表,mysql,Mysql,我正在开发一个业务审查系统。 业务表格已关闭- id category 1 1 2 1 3 1 4 2 查看表格- id bid reviewer_point 1 1 4 2 1 3 3 2 4 4 2 5 我需要返回按类别筛选的最高评级(基于平均评级点)业务的1

我正在开发一个业务审查系统。
业务
表格已关闭-

id     category
1         1
2         1
3         1
4         2
查看
表格-

id     bid     reviewer_point
1       1             4
2       1             3
3       2             4
4       2             5
我需要返回按
类别
筛选的最高评级(基于平均评级点)业务的
10
业务ID

到目前为止,我可以找到每家企业的平均评级

SELECT business.category, bid, 
     COUNT(*) AS review_count, AVG(reviewer_point) AS average_points 
FROM reviews 
GROUP BY bid    
ORDER BY average_points DESC WHERE category = 1 LIMIT 10;

我无法使用
WHERE
子句。如何获得我的首选解决方案。提前感谢

WHERE子句必须提交给GROUP BY

SELECT business.category, bid, 
     COUNT(*) AS review_count, AVG(reviewer_point) AS average_points 
FROM review
WHERE category = 1 
GROUP BY bid    
ORDER BY average_points DESC
LIMIT 10;
但是,这仍然不起作用,因为
业务
表尚未加入此查询。我想包括这一点,但没有明显的方式将
业务
加入
审查
review
表是否应该有一列包含对
business.id
的引用

祝你好运

编辑 根据OP在评论(以下)中提供的信息,修改后的查询将变为

SELECT b.category, r.bid, 
     COUNT(*) AS review_count, AVG(reviewer_point) AS average_points 
FROM review r
INNER JOIN business b
  ON b.id = r.bid
WHERE b.category = 1 
GROUP BY r.bid, b.category
ORDER BY average_points DESC
LIMIT 10;

和WHERE子句必须位于GROUP BY之前

SELECT business.category, bid, 
     COUNT(*) AS review_count, AVG(reviewer_point) AS average_points 
FROM review
WHERE category = 1 
GROUP BY bid    
ORDER BY average_points DESC
LIMIT 10;
但是,这仍然不起作用,因为
业务
表尚未加入此查询。我想包括这一点,但没有明显的方式将
业务
加入
审查
review
表是否应该有一列包含对
business.id
的引用

祝你好运

编辑 根据OP在评论(以下)中提供的信息,修改后的查询将变为

SELECT b.category, r.bid, 
     COUNT(*) AS review_count, AVG(reviewer_point) AS average_points 
FROM review r
INNER JOIN business b
  ON b.id = r.bid
WHERE b.category = 1 
GROUP BY r.bid, b.category
ORDER BY average_points DESC
LIMIT 10;

mysql单个查询的顺序是:

1st SELECT;
2nd FROM;
3rd WHERE;
4th GROUP BY;
5th HAVING;
6th ORDER BY;
7th LIMIT.

请尝试在每个查询中放置一个换行符。

mysql单个查询的顺序是:

1st SELECT;
2nd FROM;
3rd WHERE;
4th GROUP BY;
5th HAVING;
6th ORDER BY;
7th LIMIT.

试着用一条换行符将每一条换行。

为什么不能使用
WHERE
?因为无法获取
类别
。Sql错误显示“字段列表”中的“business.category”列
Unknown,这是因为您缺少查询的
JOIN
部分。如果您有疑问,请查看文档:为什么不能使用
WHERE
?因为无法获取
类别
。Sql错误显示“字段列表”中的“business.category”列
Unknown,这是因为您缺少查询的
JOIN
部分。如果您有疑问,请查看文档:
bid
of
reviews
的可能重复项是
id
of
business
的参考列。您能否加入
business
进行扩展?
bid
of
of
reviews
id
的参考列
业务
。您能否加入
业务