gpt4 book ai didi

mysql - 连接四个不同的表

转载 作者:行者123 更新时间:2023-11-29 15:42:24 24 4
gpt4 key购买 nike

我在显示 4 个表中的数据时遇到问题,我想显示学生姓名、他/她的部门、该部门的类(class)以及学生在该类(class)中获得的分数。我的表格是学生、部门、类(class)和分数。

学生:

student_ID
student_Fname
student_Lname

部门:

dep_ID
dep_Name

类(class):

course_ID
course_Name
dep_ID

标记:

marks_ID
student_ID
dep_ID
course_ID
score

我尝试通过链接学生和部门表来显示数据,以获取学生姓名及其部门,我加入部门和类(class)以检索该部门中包含的类(class),但是当我尝试加入学生和标记表时,它失败了.

这就是查询返回的内容,它返回了一名学生和体育表中的所有类(class),我什至没有为其分配分数。并且它没有显示第二个学生的分数

student_Fname | dep_Name  | course_Name    | score
--------------+-----------+----------------+------
Berhan | sports | football | 25
Berhan | sports | baseball | 25
Berhan | sports | basketball | 25
Berhan | sports | tennis | 25

这是我插入标记表中的数据。

marks_ID | student_ID | dep_ID | course_ID | score
---------+------------+--------+-----------+------
1 | 1 | 3 | 7 | 25
2 | 2 | 3 | 8 | 37

我尝试了这个查询:

SELECT 
s.student_Fname,
d.dep_Name,
c.course_ID,
m.score
FROM
student s
JOIN
department d ON s.dep_ID = d.dep_ID
JOIN
courses c ON c.dep_ID = d.dep_ID
JOIN
marks m ON m.student_ID = s.student_ID

由于我的分数表中只有 2 个学生,所以我需要这样的结果。

Berhan       | sports   | football       | 25
Hiro | sports | baseball | 37

拜托,我需要一些帮助..

最佳答案

如果您只想打印学生系类(class)中的分数,则需要将该附加条件添加到其中一个联接中。

SELECT s.student_Fname
, d.dep_Name
, c.course_ID
, m.score
FROM student s
JOIN marks m ON
ON m.student_ID = s.student_ID
JOIN courses c
ON c.course_ID = m.course_ID
JOIN department d
ON c.dep_ID = d.dep_ID AND d.dep_ID = s.dep_ID

marks 表中也不需要有 dep_ID。由于 course 有一个指向 department 的外键,因此将其放在 marks 中是多余的:标记不能与该部门位于不同的部门与类(class)相关。

关于mysql - 连接四个不同的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57465454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com