更新A表中的属性数学成绩,筛选条件是A表的学号等于C表的学号,将A表的数学成绩更新为B表中学号为刚刚筛选条件的数学成绩的求和,其中,B表和C表的学生数据一一对应,给出mysql语句
时间: 2023-05-26 10:01:57 浏览: 59
UPDATE A
SET math_score = (
SELECT SUM(B.math_score)
FROM B
INNER JOIN C ON B.student_id = C.student_id
WHERE C.student_id = A.student_id
)
WHERE A.student_id IN (
SELECT student_id
FROM C
)
相关问题
更新A表中的属性数学成绩,筛选条件是A表的学号等于B表的学号,将A表的数学成绩更新为B表中学号为刚刚筛选条件的数学成绩的求和,给出mysql语句
UPDATE A
SET math_score = (SELECT SUM(math_score)
FROM B
WHERE A.student_id = B.student_id)
WHERE A.student_id IN (SELECT student_id FROM B);
MYSQL语句 成绩表包括学号和课程编码 课程表包括课程名和课程编码 求至少同时选修数学和英语的学生的学号
你可以使用MySQL的`INNER JOIN`和`WHERE`子句来查询这个问题。假设你的成绩表名为`score`,字段有`student_id`(学号)和`course_code`(课程编码),课程表名为`courses`,字段有`course_name`(课程名)和`course_code`。
下面是一个示例SQL语句:
```sql
SELECT score.student_id
FROM score
INNER JOIN courses ON score.course_code = courses.course_code
WHERE (courses.course_name = '数学' AND score.course_code IN (
SELECT course_code FROM courses WHERE course_name = '英语'
))
GROUP BY score.student_id
HAVING COUNT(DISTINCT courses.course_name) = 2;
```
这个查询首先通过`course_code`将两个表连接起来,然后筛选出学生同时选修了数学和英语的记录,并保证每个学生只有一条匹配的记录(`COUNT(DISTINCT courses.course_name) = 2`)。结果就是至少同时选修数学和英语的学生的学号列表。
阅读全文