多表关联查询中,如何将breed_id替换为breeds.name展示?
修改后的SQL语句
SELECT AVG(score) AS average_score, dogs.name AS dog_name, breeds.name AS breed_name FROM entries JOIN dogs ON entries.dog_id = dogs.id JOIN breeds ON breeds.id = dogs.breed_id GROUP BY breeds.name, dogs.name HAVING COUNT(entries.dog_id) > 1 ORDER BY AVG(score) DESC LIMIT 10
关键修改说明
- SELECT子句:直接将原有的
dogs.breed_id替换为breeds.name,同时可以给字段添加别名(比如average_score、dog_name、breed_name),让查询结果更易读。 - GROUP BY子句:移除
dogs.breed_id,因为分组字段只需包含SELECT中所有非聚合函数的字段(这里是breeds.name和dogs.name),既符合SQL语法规范,也能确保分组逻辑正确。
内容的提问来源于stack exchange,提问作者Alanchik391
相关产品推荐
相关产品推荐

