MySQL — как написать запрос с несколькими SELECT?

Допустим есть таблица TBL1

box_namefruit_name
box1apple
box1orange
box2apple
box1tomato
box2tomato
 

В итоге должно получиться так:
box_nametotal_fruitfruit_applefruit_orangefruit_tomato
box13111
box22101
 

Собственно как получить первые два столбца разобрался, а как добавить остальные?
  • Вопрос задан
  • 182 просмотра
Решения вопроса 1
@nozzy
Symfony, Laravel, SQL
SELECT
    box_name,  
    SUM(CASE WHEN (fruit_name='apple') THEN 1 ELSE 0 END) AS fruit_apple,
    SUM(CASE WHEN (fruit_name='orange') THEN 1 ELSE 0 END) AS fruit_orange,
	  .... и тд
FROM 
    your_table
GROUP BY 
    box_name
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Arik
Похоже тема по группировкам данным, просто нужно сгруппировать и посчитать сколько чего
SELECT `box_name`, `fruit_name`, COUNT(`id`) FROM `TBL1` GROUP BY `box_name`, `fruit_name`


total_fruit наверно придется подзапросом считать или на уровне php или что у вас там
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы