SQL查询只返回一个结果
此SQL查询只返回一个结果,而它应该返回多个结果。我使用SQLJOIN将两个表中的数据合并到一个查询中。我正在尝试选择表s中包含搜索词的行(为什么我使用SQL-LIKE),然后从表r中提取列“avrank”与表s中列“id”匹配的数据(作为舍入平均值)。有什么建议我可以改变,使一个以上的结果将返回SQL查询只返回一个结果,sql,join,group-by,where,average,Sql,Join,Group By,Where,Average,此SQL查询只返回一个结果,而它应该返回多个结果。我使用SQLJOIN将两个表中的数据合并到一个查询中。我正在尝试选择表s中包含搜索词的行(为什么我使用SQL-LIKE),然后从表r中提取列“avrank”与表s中列“id”匹配的数据(作为舍入平均值)。有什么建议我可以改变,使一个以上的结果将返回 SELECT s.*, ROUND(AVG(r.rank),0) AS avrank FROM stories s
SELECT s.*,
ROUND(AVG(r.rank),0)
AS avrank
FROM stories s
LEFT JOIN ratings
AS r ON r.storyidr = s.id
WHERE title
LIKE '%$find%'
LIMIT 50;
你只得到一个结果,因为你在计算平均值。。为了在使用函数(如
AVG()
或COUNT()
等)时获得多个结果。。您需要使用分组依据
您可以尝试以下方法:
SELECT s.*,
ROUND(AVG(r.rank),0)
AS avrank
FROM stories s
LEFT JOIN ratings
AS r ON r.storyidr = s.id
GROUP BY title
HAVING title
LIKE '%$find%'
LIMIT 50;
你只得到一个结果,因为你在计算平均值。。为了在使用函数(如
AVG()
或COUNT()
等)时获得多个结果。。您需要使用分组依据
您可以尝试以下方法:
SELECT s.*,
ROUND(AVG(r.rank),0)
AS avrank
FROM stories s
LEFT JOIN ratings
AS r ON r.storyidr = s.id
GROUP BY title
HAVING title
LIKE '%$find%'
LIMIT 50;
你只得到一个结果,因为你在计算平均值。。为了在使用函数(如
AVG()
或COUNT()
等)时获得多个结果。。您需要使用分组依据
您可以尝试以下方法:
SELECT s.*,
ROUND(AVG(r.rank),0)
AS avrank
FROM stories s
LEFT JOIN ratings
AS r ON r.storyidr = s.id
GROUP BY title
HAVING title
LIKE '%$find%'
LIMIT 50;
你只得到一个结果,因为你在计算平均值。。为了在使用函数(如
AVG()
或COUNT()
等)时获得多个结果。。您需要使用分组依据
您可以尝试以下方法:
SELECT s.*,
ROUND(AVG(r.rank),0)
AS avrank
FROM stories s
LEFT JOIN ratings
AS r ON r.storyidr = s.id
GROUP BY title
HAVING title
LIKE '%$find%'
LIMIT 50;