Выберите группы строк, каждая из которых имеет определенное значение в MySQL

Скажем, у меня есть следующие строки в таблице:

+----+--------------+-------+------+ | ID | fruit | amount| price| +----+--------------+-------+------+ | 1 | oranges | 7 | 20 | +----+--------------+-------+------+ | 2 | plums | 21| 32 | +----+--------------+-------+------+ | 3 | oranges | 2 | 32 | +----+--------------+-------+------+ | 4 | oranges | 7 | 12 | +----+--------------+-------+------+ | 5 | plums | 4 | 89 | +----+--------------+-------+------+ | 6 | grapes | 5 | 34 | +----+--------------+-------+------+ | 7 | grapes | 6 | 132 | +----+--------------+-------+------+ | 8 | plums | 2 | 19 | +----+--------------+-------+------+ 

Моя конечная цель – получить общие суммы и общие цены за каждый уникальный плод в таблице.

Прямо сейчас, последовательность функций, о которых я думал сделать, чтобы получить желаемый эффект:

 using PHP: SELECT * from table where fruit = "oranges". 

Я буду использовать ajax для запуска этого, поэтому я собираюсь использовать jquery, чтобы добавить сумму и цену. Затем повторите для «слив» и «виноград».

Одна из проблем, которые я буду иметь, – я не буду знать, какие плоды будут в таблице фруктов.

Так есть ли более простой способ найти все уникальные плоды в столбце, затем выполнить поиск в базе данных для строк с каждым из этих плодов, а затем добавить итоговые значения для каждого?

Вы также можете получить сгруппированный результат, а затем перебрать его для отображения

 select fruit, sum(amount), sum(amount*price) from table group by fruit