clear markdown compare help best fiddles feedback dbanow.uk
clear markdown donate comments/suggestions/bugs a leap of faith? bible365 diddy dollings
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0. 2555330 fiddles created (37433 in the last week).

-- У нас есть несколько коробок CREATE TABLE boxes ( id INT UNSIGNED NOT NULL, title VARCHAR(255) NOT NULL )
 hidden batch(es)


-- У нас есть несколько видов кубиков CREATE TABLE cubes ( id INT UNSIGNED NOT NULL, color VARCHAR(255) NOT NULL )
 hidden batch(es)


-- Кубики сложены в коробки, по несколько кубиков определенного типа CREATE TABLE cubes_in_boxes ( box_id INT UNSIGNED NOT NULL, cube_id INT UNSIGNED NOT NULL, cubes_count INT UNSIGNED NOT NULL )
 hidden batch(es)


INSERT INTO boxes(id, title) VALUES (1, 'first'), (2, 'second'), (3, 'third')
 hidden batch(es)


INSERT INTO cubes(id, color) VALUES (1, 'red'), (2, 'blue'), (3, 'green')
 hidden batch(es)


INSERT INTO cubes_in_boxes(box_id, cube_id, cubes_count) VALUES (3, 1, 43), (3, 2, 12), (2, 3, 5), (1, 1, 20), (3, 1, 17), (3, 3, 13), (2, 3, 21), (1, 2, 2), (3, 2, 19), (1, 1, 7) /** * 1 | red | 3 | 43 * 2 | blue | 3 | 12 * 3 | green | 2 | 5 * 4 | red | 1 | 20 * 5 | red | 3 | 17 * 6 | green | 3 | 13 * 7 | green | 2 | 21 * 8 | blue | 1 | 2 * 9 | blue | 3 | 19 * 10 | red | 1 | 7 **/
 hidden batch(es)


SELECT cib.box_id, -- Суммируем количество кубиков SUM(cib.cubes_count) AS cubes_count -- Получаем список кучек кубиков в коробках FROM cubes_in_boxes AS cib -- Нам нужно отфильтровать кучки по цвету -- Для этого добавляем информацию о цвете каждой кучки кубиков в коробке INNER JOIN cubes AS c ON c.id = cib.cube_id -- Оставляем только записи и кучках красных кубиков AND c.color = 'red' -- Группируем записи по коробкам GROUP BY cib.box_id
box_id cubes_count
3 60
1 27
 hidden batch(es)