SQL查询中WHERE条件的顺序有所不同

时间:2012-10-09 00:01:08

标签: sql

我有两个SQL表StudentClass

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;

有谁能帮我找到这个问题的正确查询?谢谢

2 个答案:

答案 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'