存在oder表格和order_detail表,其中order_detail.order_id是外键,与order.id关联

本文通过SQL语句演示了对订单数据的常见操作,包括筛选特定时间范围内的订单,获取指定商品类型的团队ID,计算团队订单总价以及找出最高价格的订单信息。这些查询涵盖了时间过滤、分组聚合及子查询等基本SQL技巧,对于理解数据库操作具有指导意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

order表

idteam_idpay_user_idorder_statuscreate_timeupdate_time 

order_detail表

idorder_idproduct_typeprice

1.查询product_order表中create_time大于2022-06-11 16:15:07的数据,按create_time倒序排列

2.查询product_type=3的全部订单的team_id,查询结果需要按team_id去重

3.按team计算每个team下所有订单的价格之和

4.查询价格最高的订单信息

注意:表名和字段都不能用关键字,不然报语法错误

-- 建表
CREATE TABLE `product_order` (
`id` BIGINT(20) AUTO_INCREMENT NOT NULL COMMENT '主键ID',
`team_id` INT(12) DEFAULT NULL COMMENT '组id',
`pay_user_id` INT(11) DEFAULT NULL COMMENT '支付用户id',
`order_status` VARCHAR(50) DEFAULT NULL COMMENT '状态',
`create_time` TIMESTAMP  DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` TIMESTAMP  DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;

CREATE TABLE `product_order_detail` (
`id` BIGINT(20) AUTO_INCREMENT NOT NULL COMMENT '主键ID',
`order_id` INT(12) DEFAULT NULL COMMENT '订单id',
`product_type` INT(12) DEFAULT NULL COMMENT '商品类型',
`price` FLOAT(5,2) DEFAULT NULL COMMENT '价格',
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;


DROP TABLE `product_order_detail`;
DROP TABLE `product_order`;

TRUNCATE TABLE `product_order_detail`;
TRUNCATE TABLE `product_order`;

-- 插入数据
INSERT INTO product_order (team_id,pay_user_id,order_status) VALUES
(5965,18,'支付'),
(5945,28,'未支付'),
(5985,38,'支付'),
(5545,58,'未支付'),
(5745,88,'支付'),
(6945,27,'未支付')
;

INSERT INTO product_order (team_id,pay_user_id,order_status) VALUES
(6965,17,'支付'),
(6945,25,'未支付'),
(6985,35,'支付'),
(5645,68,'未支付')
;

INSERT INTO product_order (team_id,pay_user_id,order_status) VALUES
(7965,97,'支付'),
(7945,96,'未支付')
;
INSERT INTO product_order (team_id,pay_user_id,order_status) VALUES (5965,47,'支付');
INSERT INTO product_order (team_id,pay_user_id,order_status) VALUES (5965,49,'支付');

-- -------------------------

INSERT INTO product_order_detail (order_id,product_type,price) VALUES
(1,3,8.56),
(2,4,7.56)
;
INSERT INTO product_order_detail (order_id,product_type,price) VALUES (3,3,8.56);
INSERT INTO product_order_detail (order_id,product_type,price) VALUES (3,3,8.56);
INSERT INTO product_order_detail (order_id,product_type,price) VALUES (13,4,18.56);
INSERT INTO product_order_detail (order_id,product_type,price) VALUES (14,3,18.46);

-- 执行查询
-- 1.查询product_order表中create_time大于2022-06-11 16:15:07的数据,按create_time倒序排列
SELECT * FROM `product_order` WHERE create_time > '2022-06-11 16:15:07' ORDER BY create_time DESC;
-- 2.查询product_type=3的全部订单的team_id,查询结果需要按team_id去重
SELECT DISTINCT team_id FROM `product_order`,`product_order_detail` WHERE product_type=3 AND `product_order_detail`.order_id = `product_order`.id;
-- 3.按team计算每个team下所有订单的价格之和
SELECT team_id, SUM(price) FROM `product_order`,`product_order_detail` WHERE  `product_order_detail`.order_id = `product_order`.id
GROUP BY team_id;
-- 4.查询价格最高的订单信息
SELECT MAX(price) FROM `product_order_detail`;
SELECT * FROM `product_order_detail` WHERE price=(SELECT MAX(price) FROM `product_order_detail`);

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值