2015-12-05 2 views
1

У меня есть 2 стола, еда и оценка., где предложение sub sub с использованием avg

еды

  • id
  • name
  • picture

счет

  • id
  • score
  • food_id.

Я хочу запросить пищи, которые имеют средний балл выше 7:

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

Но это возвращает

ошибку # 1242 - подзапрос возвращает более чем на 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 
+0

поэтому ключ к ним присоединиться. Я думал, что это не обязательно, потому что я не выбираю из таблицы баллов. поэтому большое спасибо. – novusz

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 
Смежные вопросы