where子句子查询使用avg

时间:2015-12-05 04:48:02

标签: mysql sql

我有2张桌子,食物和分数。

食品

  • id
  • name
  • picture

得分

  • id
  • score
  • food_id

我想查询平均得分高于7的食物:

select * from food where (select avg(score) from score group by food_id)>=7

但是这会返回

  

错误#1242 - 子查询返回超过1行。

2 个答案:

答案 0 :(得分:1)

试试这个

  SELECT * FROM food f INNER JOIN score s
  ON f.id = s.food_id
  WHERE avg(s.score)>=7
  GROUP BY f.food_id

答案 1 :(得分:1)

试试这个:

select fd.* from food fd
inner join score sc on fd.id=sc .food_id
group by food.id
having avg(sc.score)>=7