假設有兩張表
Table A: ID, Name, Salary
Table B: ID, Department
我想要把兩張表Join在一起
並且加上兩個條件句
Salary>'50000'
Department='IT'
想要請問以下兩種寫法是否有所差異
SELECT *
FROM A
JOIN B ON A.ID=B.ID
WHERE
A.Salary > '50000'
B.Department = 'IT'
SELECT *
FROM A, B
WHERE
A.ID=B.ID
A.NUMBER > '50000'
B.Department = 'IT'
我遇到一個類似的case是用第二種寫法
但有時候系統會跑不出結果
我在想會不會是Join寫法的問題
謝謝
SELECT * FROM A, B WHERE A.ID=B.ID **AND** A.NUMBER > '50000' **AND** B.Department = 'IT'
正確的說法應該是: JOIN 是正規的語法. 在 WHERE 中用= 的語法是後來簡化出來的語法.
對照一下:
INTER JOIN => A.ID=B.ID
LEFT JOIN => A.ID=B.ID(+)
RIGTH JOIN => A.ID(+)=B.ID
FULL JOIN => 不知 (因為很少下,所以不知, 會不會 A.ID(+)=B.ID(+)? )
建議:
如果可以會建議用: JOIN 語法.
因為正規(就不用耽心版本問題)而且容易讀.