Всем привет. Есть две таблицы products
, reviews
.
products: id |product_name|image
reviews: id |product_id | rating(int)
Нужно получить
product_name | image | AVG(rating)
Вроде бы элементарно, но ...
select products.name, products.image, AVG(rating)
from products,reviews WHERE products.id=reviews.product_id;
ERROR 1140 (42000): In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column 'review.products.name'; this is incompatible with sql_mode=only_full_group_by
Вот так должно сработать
select
pro.id, pro.name, pro.image, avg(rev.rating) from products pro
join reviews rev on pro.id = rev.product_id
group by pro.id, pro.name, pro.image
Для подсчета среднего нужно использовать в запросе group by, подробнее можно почитать тут: https://oracleplsql.ru/group-by-sql.html
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
я новичок в LaravelХочу перенести проект с ноутбука на ПК
Появилась необходимость сделать регистрацию и авторизацию для андройд приложения, для этих целей предполагается использование Slim и OAuth20...
Знаю, что много уже написано на тему ошибок с mysqli_fetch_assoc() Но вот снова
В этом фрагменте мы получаем строки от $rand->getValue(), далее разбиваем их на массив дабы каждая строка была в каждом элементе массива, но что проиходит...