学生表如下
因为通过name分组的语句“select id from student group by name;”得到了1和2两个ID;所以以为语句“select id from student where id in (select id from student group by name);”也只会得到1和2。但是却得到了1、2、3。为什么会得到1、2、3呢?
mysql版本为5.6.37-log。
表创建语句
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` int(11) NOT NULL,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Compact;
数据插入语句
INSERT INTO `student` VALUES (1, 'a');
INSERT INTO `student` VALUES (2, 'b');
INSERT INTO `student` VALUES (3, 'a');