如何使用where子句在两个表的多个键上实现SQL连接?

问题描述 投票:-1回答:2

我有兴趣使用以下两个表格来查找按性别划分的商学院2018年第一周的学生人数。在此,ID是每个数据表的主键或主键的一部分。在计划表中,程序是学生所在的大学(在我们的情况下为“ Business”),“性别”的值为M和F,“ TERM”值为“ Fall”,“ Spring”和“ Summer”,Sessions值为,“第一周”和“第二周”。我想知道您是否可以检查我的代码。我是SQL的新手!衷心感谢您的宝贵时间。

enter image description here

我的SQL代码:

SELECT count(Student.ID) as COUNT, Student.Sex as Sex
FROM Student JOIN Plan
on Student.ID=Plan.ID
WHERE Student.Term="Fall"
AND Student.Sessions="1st Week"
AND Plan.Program="Business"
GROUP BY Student.Sex;
mysql sql sqlite
2个回答
0
投票

无论如何,我在这里创建了小提琴供您参考:

https://www.db-fiddle.com/f/7G2DwLB6SNqbAtKeD96nWG/1

而且我可以得出结论,根据您给出的查询条件,它是正确的。但是就像@Benny提到的那样,字段ID通常是指表数据ID。例如,ID中的Student是学生ID,而在Plan中,每个计划的ID很有可能。但是您说的是相同的,并且student_id表中没有Plan列,因此应该没问题。


1
投票

答案取决于计划表中的ID列是否是学生的ID号,我认为不是。计划表应为每个学生课程组合包含一个条目,以说明同一学生有不同课程的情况。请参阅:一对多关系。从那里开始,在对select子句中提到的所有字段进行分组之后,您应该能够执行此查询。

© www.soinside.com 2019 - 2024. All rights reserved.