题解 | #平均成绩,课程信息#

alt

建表

CREATE TABLE `student` (
  `sid` int DEFAULT NULL,
  `sname` varchar(10) DEFAULT NULL,
  `sage` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

INSERT INTO `student` VALUES (1, 'ss', '1111');
INSERT INTO `student` VALUES (2, 'aa', '1111');
INSERT INTO `student` VALUES (3, 'cc', '1111');
INSERT INTO `student` VALUES (4, 'ee', '1111');
INSERT INTO `student` VALUES (5, 'dd', '1111');

CREATE TABLE `score` (
  `sid` int DEFAULT NULL,
  `cid` int DEFAULT NULL,
  `score` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

INSERT INTO `score` VALUES (1, 1, 60);
INSERT INTO `score` VALUES (1, 3, 80);
INSERT INTO `score` VALUES (2, 2, 30);
INSERT INTO `score` VALUES (2, 3, 60);
INSERT INTO `score` VALUES (3, 1, 10);
INSERT INTO `score` VALUES (3, 2, 20);
INSERT INTO `score` VALUES (3, 3, 60);
INSERT INTO `score` VALUES (4, 1, 80);
INSERT INTO `score` VALUES (4, 2, 60);
INSERT INTO `score` VALUES (4, 3, 60);
INSERT INTO `score` VALUES (5, 1, 70);
INSERT INTO `score` VALUES (5, 2, 60);
INSERT INTO `score` VALUES (5, 3, 60);

平均成绩

SELECT
	s.sid,
	s.sname,
	t.score 
FROM
	student AS s
	RIGHT JOIN ( SELECT sid, AVG( score ) AS score FROM score GROUP BY sid HAVING AVG( score ) >= 60 ) t ON s.sid = t.sid

课程信息

SELECT
	a.* 
FROM
	student a,
	score b,
	score c 
WHERE
	a.sid = b.sid 
	AND a.sid = c.sid 
	AND b.cid = '01' 
	AND c.cid = '02'
全部评论

相关推荐

点赞 收藏 评论
分享
正在热议
牛客网
牛客企业服务