Я уверен, что кто-то уже задавал этот вопрос где-то, но, похоже, не может его найти.
Возможно ли в mysql сделать sum или group concat (AGGREGATE FUNCTION) в сочетании с отличным?
Пример: у меня есть продукт заказа, который может иметь много вариантов и много бенефициаров.Как можно в одном запросе (без использования подзапроса) получить список опций, сумму цены опциона и список бенефициаров?
Я создал примерный набор данных:
CREATE TABLE `order`
(id INT NOT NULL PRIMARY KEY);
CREATE TABLE order_product
(id INT NOT NULL PRIMARY KEY
,order_id INT NOT NULL
);
CREATE TABLE order_product_options
(id INT NOT NULL PRIMARY KEY
,title VARCHAR(20) NOT NULL
,price INT NOT NULL
,order_product_id INT NOT NULL
);
CREATE TABLE order_product_beneficiary
(id INT NOT NULL PRIMARY KEY
,name VARCHAR(20) NOT NULL
,order_product_id INT NOT NULL
);
INSERT INTO `order` (`id`) VALUES (1);
INSERT INTO `order_product` (`id`, `order_id`) VALUES (1, 1);
INSERT INTO `order_product_options` (`id`, `title`, `price`, `order_product_id`)
VALUES (1,'option1', 1, 1), (2, 'option2', 2, 1), (3, 'option3', 3, 1), (4, 'option3', 3, 1);
INSERT INTO `order_product_beneficiary` (`id`, `name`, `order_product_id`)
VALUES (1,'mark', 1), (2, 'jack', 1), (3, 'jack', 1);
http://sqlfiddle.com/#!9/37e383/2
Результат, который я хотел бы получить:
- id: 1
- options: option1, option2, option3, option3
- опционная цена: 9
- бенефициары: марка, джек, джек
Возможно ли это в MySQL без использования подзапросов?(Я знаю, что это возможно в оракуле) Если это возможно, как бы вы это сделали?
Спасибо