gpt4 book ai didi

mysql - 查询无重复项

转载 作者:行者123 更新时间:2023-11-29 12:13:20 25 4
gpt4 key购买 nike

我创建了三个表。一个是MidTerm,另一个是FinalTerm,最后一个是Results

它们每个都有如下列:Student_ID、Student_Name、Score、Course_ID。

这意味着所有表中都有相同的学生,ID相同但分数不同。我想从所有三个表中检索、查询 Student_ID、Student_Name 和 Scores。但当我这样做时,会出现很多重复的情况。一名学生可以有一个 ID,但许多类(class)有很多类(class) ID,这意味着他可以有多个分数。

如何为其编写查询?

SELECT dbo.FinalTerm.Student_ID, dbo.FinalTerm.Student_Name, dbo.FinalTerm.Score, dbo.Results.Score AS Expr1, dbo.Results.Course_ID, 
dbo.MidTerm.Score AS Expr2, dbo.MidTerm.Course_ID AS Expr3, dbo.FinalTerm.Course_ID AS Expr4
FROM dbo.FinalTerm INNER JOIN
dbo.Results ON dbo.FinalTerm.ID = dbo.Results.ID INNER JOIN
dbo.MidTerm ON dbo.Results.Student_ID = dbo.MidTerm.Student_ID

最佳答案

如果您的目的是列出学生的所有分数,您可能可以使用 GROUP_CONCAT

SELECT 
m.Student_ID, m.Student_Name, GROUP_CONCAT(m.Score,' ',f.Score,' ',r.Score)
FROM
MidTerm m
inner join FinalTerm f on m.Student_ID = f.Student_ID
inner join Results r on f.Student_ID = r.Student_ID
GROUP BY
Student_ID, Student_Name;

此外,您可能不应该在所有表中保留student_name。更好的方法是创建一个学生表,在其中保留所有学生详细信息,并将 Student_id 保留在其他表中以引用学生表

关于mysql - 查询无重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30289954/

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