使用in和group by时得到了意料之外的结果,查询到了全部的ID

新生
  • 0
新手上路,请多包涵

学生表如下
image.png

因为通过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。

image.png

表创建语句
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');
回复
阅读 181
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏