2015-12-20 4 views
2

Мне нужно работать в рейтинговой системе, как это:Как обеспечить многократный рейтинг

enter image description here

Я создал таблицу под названием обзор, как это:

enter image description here

Я попытался это запрос.

SELECT AVG(`food`) as foodavg FROM review where `restaurant_id` = '10' 

Но это дает в среднем только питание. и мне нужно показать результат для каждого ресторана, как это.

enter image description here

Скажите, пожалуйста, правильно ли эта структура. Я не мог найти запрос, чтобы показать средний рейтинг одного ресторана. Будет ли использоваться какой-либо запрос на объединение или вложенный запрос?

Пожалуйста, предоставьте любое решение. Спасибо.

+0

для расчета "средний", вы можете использовать 'AVG()' HTTP: // WWW .mysqltutorial.org/mysql-aggregate-functions.aspx –

+0

да, что я могу сделать, но проблема заключается в том, чтобы запускать в одном запросе для того же пользователя. как 10 в таблице. – Adas

+0

используйте предложение WHERE. Если вы что-то попробовали, включите его в свой вопрос. Эта ссылка, которую я дал вам, показывает, что SELECT AVG (buyPrice) average_buy_price' - 'buyPrice' является столбцом, который вы хотите усреднить. Использование псевдонима также возможно, поэтому, возможно, вы пропустили это. –

ответ

2

Я не слишком много expierience с SQL, но я думаю, что вы ищете:

SELECT (AVG(`food`)+AVG(`staff`)+AVG(`value`)+AVG(`atmosphere`))/4 FROM review 
where `restaurant_id` = '10' 
+0

Даже я не был уверен в логике, если это работает таким образом для нескольких рейтингов, но я полагаю, что вы абсолютно правы, чтобы получить результат по вашему запросу. – Adas

+0

- это логика, чтобы получить многоуровневый рейтинг? – Adas

+0

Он думает, что должно быть. Это средний из четырех оценок, которые у вас есть для одного ресторана. – Philipp