宇宙不会辜负每一粒星辰的努力,你生来就是光的一部分。
数据源(数据表tb_salesnum):
use db_demo;create table tb_salesnum (id int(11) NULL,`year` int(11) NULL,`month` int(11) NULL,salesnum decimal(10,2) NULL)ENGINE=InnoDBDEFAULT CHARSET=utf8mb4COLLATE=utf8mb4_unicode_ci;
INSERT INTO db_demo.tb_salesnum(id, `year`, `month`, salesnum)VALUES(1, 2025, 7, 100.00);INSERT INTO db_demo.tb_salesnum(id, `year`, `month`, salesnum)VALUES(2, 2025, 7, 200.00);INSERT INTO db_demo.tb_salesnum(id, `year`, `month`, salesnum)VALUES(3, 2024, 7, 56.00);INSERT INTO db_demo.tb_salesnum(id, `year`, `month`, salesnum)VALUES(45, 2024, 7, 78.00);INSERT INTO db_demo.tb_salesnum(id, `year`, `month`, salesnum)VALUES(58, 2025, 5, 88.00);INSERT INTO db_demo.tb_salesnum(id, `year`, `month`, salesnum)VALUES(6, 2024, 5, 88.00);INSERT INTO db_demo.tb_salesnum(id, `year`, `month`, salesnum)VALUES(9, 2025, 5, 90.00);INSERT INTO db_demo.tb_salesnum(id, `year`, `month`, salesnum)VALUES(7, 2024, 5, 96.00);INSERT INTO db_demo.tb_salesnum(id, `year`, `month`, salesnum)VALUES(3, 2025, 5, 978.00);INSERT INTO db_demo.tb_salesnum(id, `year`, `month`, salesnum)VALUES(2, 2025, 5, 88.00);INSERT INTO db_demo.tb_salesnum(id, `year`, `month`, salesnum)VALUES(5, 2024, 3, 90.00);INSERT INTO db_demo.tb_salesnum(id, `year`, `month`, salesnum)VALUES(4, 2025, 3, 96.00);INSERT INTO db_demo.tb_salesnum(id, `year`, `month`, salesnum)VALUES(1, 2024, 3, 200.00);INSERT INTO db_demo.tb_salesnum(id, `year`, `month`, salesnum)VALUES(6, 2025, 11, 150.00);INSERT INTO db_demo.tb_salesnum(id, `year`, `month`, salesnum)VALUES(9, 2024, 11, 100.00);INSERT INTO db_demo.tb_salesnum(id, `year`, `month`, salesnum)VALUES(55, 2025, 11, 77.00);
selectidfrom(selectid,Sum(salesnum)from tb_salesnumgroup by idorder by Sum(salesnum) desclimit 5) tb2_salesnum;
把子查询的结果命名为tb2_salesnum,再在tb2_salesnum基础上进一步查询id号
desc tb_salesnum;
select id from tb_salesnum;
selectid,Sum(salesnum) as moneyfrom tb_salesnumgroup by idorder by money desclimit 5;
select id from(selectid,Sum(salesnum) as moneyfrom tb_salesnumgroup by idorder by money desclimit 5) tb222;
两个数据表关联:
selecttb333.id,orderbydata.orderidfrom(select id from(selectid,Sum(salesnum) as moneyfrom tb_salesnumgroup by idorder by money desclimit 5) tb222) tb333inner join orderbydata on tb333.id=orderbydata.customerid;
想要输出tb_salesnum中的id字段、一级orderbydata表中的orderid字段,注意在两次的子查询中,原本的tb_salesnum.id已经被子查询结果命名为tb333.id
若写select tb_salesnum.id, orderbydata.orderid....将会报错,因为子查询的结果中,只有tb333.id

