我有以下数据库和查询:
CREATE TABLE table1
(`group` int, `points` int)
;
INSERT INTO table1
(`group`, `points`)
VALUES
(1, 115),
(2, 125),
(1, 105),
(2, 000),
(3, 005),
(1, 020),
(2, 005),
(1, 010),
(2, 005),
(3, 030),
(2, 000),
(2, 055),
(2, 100),
(1, 020),
(3, 055),
(3, 055),
(1, 005),
(1, 010),
(2, 025),
(1, 035),
(2, 100),
(1, 120),
(3, 140),
(3, 105),
(1, 065),
(3, 025),
(4, 015),
(1, 005),
(2, 010),
(1, 130),
(4, 040),
(1, 055),
(4, 020),
(4, 060),
(3, 010),
(3, 105),
(4, 125),
(3, 000),
(2, 005),
(2, 010),
(1, 115)
;
CREATE TABLE soruce1
(`group` int)
;
INSERT INTO soruce1
(`group`)
VALUES
(1),
(2),
(3),
(4)
;
select s1.`group`, SUM(t1.`points`) FROM table1 as t1
inner join soruce1 as s1
on s1.`group` = t1.`group`
where s1.`group` = 1
GROUP BY s1.`group`
ORDER BY SUM(t1.`points`) ASC;
数据库和查询(SQL Fiddle Link)
如何使用 where 子句循环遍历 source1 中的所有值,而不必使用 While 循环,因此当它完成对组 1 的查询时,它将移动到组 2,依此类推,直到表的末尾,自然,选择将用于插入
这只是数据的一个样本,source1 有近 5000 个条目