两个表:1、成绩单 2、查询名单
目标:
1、选中全部字段,用于输出。
2、成绩单中有很多人的成绩,第一步是希望通过联表,只查查询名单上的人的成绩。
3、得到查询名单上的人的成绩后,只选择科目1的成绩输出,不要输出科目2的成绩。
4、按科目1考试成绩,降序输出。
成绩单表如下:
学号 | 考试成绩 | 科目 |
---|---|---|
1001 | 94 | 科目1 |
1001 | 74 | 科目1 |
1001 | 85 | 科目1 |
1001 | 99 | 科目2 |
1001 | 84 | 科目2 |
1002 | 95 | 科目1 |
1002 | 94 | 科目1 |
1002 | 89 | 科目1 |
1002 | 96 | 科目1 |
1002 | 100 | 科目2 |
1002 | 96 | 科目2 |
1002 | 74 | 科目2 |
1003 | 84 | 科目1 |
1003 | 90 | 科目1 |
1003 | 88 | 科目2 |
查询名单表如下:
学号 | 姓名 |
---|---|
1001 | 小红 |
1002 | 小亮 |
1和2合二为一,完整代码:
SELECT `成绩单`.`学号`,`姓名`,`考试成绩`,`科目`
FROM `成绩单`
INNER JOIN `查询名单`
ON `成绩单`.`学号`=`查询名单`.`学号`
其中:由于两个表中都有学号这个字段,所以要指定字段,因此:查询名单.学号
效果为:
完整代码:
SELECT `成绩单`.`学号`,`姓名`,`考试成绩`,`科目`
FROM `成绩单`
INNER JOIN `查询名单`
ON `成绩单`.`学号`=`查询名单`.`学号`
WHERE `科目`=‘科目1‘
效果:
SELECT `成绩单`.`学号`,`姓名`,`考试成绩`,`科目`
FROM `成绩单`
INNER JOIN `查询名单`
ON `成绩单`.`学号`=`查询名单`.`学号`
WHERE `科目`=‘科目1‘
ORDER BY `考试成绩` DESC
原文:https://www.cnblogs.com/WZ-BeiHang/p/12375220.html