我使用的是mysql,表是用以下模式创建的:
CREATE TABLE `example` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`version` INT UNSIGNED NOT NULL,
`text` VARCHAR(45) NOT NULL,
`class_id` INT NOT NULL,
`tyoe_id` INT NULL,
PRIMARY KEY (`id`));
该表包含链接中显示的以下条目(不允许嵌入)。
对于一个特定的类id(例如10),我想用max version获得所有不同类型的id。可能存在或不存在5个类型标识1、2、3、4、5,但是如果某个类型标识存在于特定类中,则我们需要最新的(最大版本)。查询也应该返回文本列。
如果需要,下面是insert语句
INSERT INTO `example1` (`id`,`version`,`text`,`class_id`,`tyoe_id`) VALUES (1,1,'text1',10,1);
INSERT INTO `example1` (`id`,`version`,`text`,`class_id`,`tyoe_id`) VALUES (2,1,'text2',10,2);
INSERT INTO `example1` (`id`,`version`,`text`,`class_id`,`tyoe_id`) VALUES (3,1,'test3',10,3);
INSERT INTO `example1` (`id`,`version`,`text`,`class_id`,`tyoe_id`) VALUES (4,1,'test4',10,4);
INSERT INTO `example1` (`id`,`version`,`text`,`class_id`,`tyoe_id`) VALUES (5,1,'test5',10,5);
INSERT INTO `example1` (`id`,`version`,`text`,`class_id`,`tyoe_id`) VALUES (6,2,'test44',10,3);
INSERT INTO `example1` (`id`,`version`,`text`,`class_id`,`tyoe_id`) VALUES (7,1,'1111',11,1);
INSERT INTO `example1` (`id`,`version`,`text`,`class_id`,`tyoe_id`) VALUES (8,1,'eferwer',12,2);
INSERT INTO `example1` (`id`,`version`,`text`,`class_id`,`tyoe_id`) VALUES (9,3,'last',10,3);
INSERT INTO `example1` (`id`,`version`,`text`,`class_id`,`tyoe_id`) VALUES (10,2,'new',10,5);
INSERT INTO `example1` (`id`,`version`,`text`,`class_id`,`tyoe_id`) VALUES (11,3,'rrrr',10,5);
1条答案
按热度按时间k3bvogb11#
在派生表中,获取每个类型id的最大版本值
联接回主表以获得相应的行。
请尝试以下操作:
结果
db fiddle视图