我有两个SQL表Student
和Class
。
在Student
表格中,字段为studentNo, studentName, classNo
在Class
表中,字段为classNo, className, teacherName
我要做的是构建一个查询,列出所有history
班级的学生。
这是我的问题:
SELECT studentName
FROM Student s, Class c
WHERE s.classNo = c.classNo AND
c.className = ‘history’;
但我对上述查询并不是100%肯定。我想也许下面的一个可以比上面的那个工作:
SELECT studentName
FROM Student s, Class c
WHERE c.className = ‘history’ AND
s.classNo = c.classNo;
有谁能帮我找到这个问题的正确查询?谢谢
答案 0 :(得分:2)
您当前的查询似乎很好,但请注意,如果您将其转换为ANSI SQL_92
格式(更清晰,可能不会导致交叉加入),
SELECT studentName
FROM Student s INNER JOIN Class c
ON s.classNo = c.classNo
WHERE c.className = 'history';
如果将两者互换,没有区别。在数学中,commutative
法律规定A + B = B + A
。
答案 1 :(得分:0)
选择
StudentName
FROM Student St JOIN课程c ON St.classNo = c.classNo WHERE c.className ='history'