2012-10-09 58 views
0

我有兩個SQL表StudentClassSQL查詢中WHERE條件的順序產生差異

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

您當前的查詢似乎不錯,但一點,如果你把它轉換成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

0

SELECT

StudentName

FROM學生聖JOIN C類 ON St.classNo = c.classNo WHERE c.className = '歷史'