首先,我的表架构如下所示:
CREATE TABLE `list` (`id` INT NOT NULL AUTO_INCREMENT , `parentId` INT NOT NULL , PRIMARY KEY (`id`));
INSERT INTO `list` (`id`, `parentId`) VALUES ('1', '1');
INSERT INTO `list` (`id`, `parentId`) VALUES ('2', '1');
INSERT INTO `list` (`id`, `parentId`) VALUES ('3', '1');
INSERT INTO `list` (`id`, `parentId`) VALUES ('4', '2');
INSERT INTO `list` (`id`, `parentId`) VALUES ('5', '2');
INSERT INTO `list` (`id`, `parentId`) VALUES ('6', '2');
INSERT INTO `list` (`id`, `parentId`) VALUES ('7', '3');
INSERT INTO `list` (`id`, `parentId`) VALUES ('8', '3');
INSERT INTO `list` (`id`, `parentId`) VALUES ('9', '3');
我有一个返回此数据的查询,例如:
| id | parentId |
|----|----------|
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 2 |
| 5 | 2 |
| 6 | 2 |
| 7 | 3 |
| 8 | 3 |
| 9 | 3 |
以上所有数据都是从选择查询生成的:
SELECT `id`, `parentId` FROM `table` ORDER BY `id`;
我需要结果是每个 parentId 最多 2 条记录。结果需要如下所示:
| id | parentId |
|----|----------|
| 1 | 1 |
| 2 | 1 |
| 4 | 2 |
| 5 | 2 |
| 7 | 3 |
| 8 | 3 |
我如何实现这一目标?我一直在网上搜索,但似乎没有运气。任何帮助都感激不尽。
谢谢你。