Общая сумма заказа
Есть вот такая структура таблиц:
CREATE TABLE `orders` (
`id_order` INT(11) NOT NULL AUTO_INCREMENT,
`dt` DATETIME NOT NULL,
`status` VARCHAR(45) NULL DEFAULT NULL,
`pm` VARCHAR(9) NULL DEFAULT NULL,
PRIMARY KEY (`id_order`),
UNIQUE INDEX `pm` (`pm`)
)
CREATE TABLE `orders_products` (
`id_order` INT(11) NOT NULL,
`id_product` INT(11) NOT NULL,
`quantity` INT(11) NOT NULL,
`price` DECIMAL(10,2) NOT NULL,
PRIMARY KEY (`id_order`, `id_product`),
INDEX `id_product` (`id_product`),
CONSTRAINT `id_order` FOREIGN KEY (`id_order`) REFERENCES `orders` (`id_order`) ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT `id_product` FOREIGN KEY (`id_product`) REFERENCES `products` (`id_product`)
)
Как вывести список заказов и общую сумму заказа, если в одном заказе может быть несколько товаров?
Сделал что-то типа этого, но выводит один заказ несколько раз:
SELECT DISTINCT o.id_order, o.dt, SUM(op.quantity * op.price) as suma_order FROM orders o INNER JOIN orders_products op on o.id_order = op.id_order GROUP BY op.quantity
Источник: Stack Overflow на русском