在FROM語句中使用運算符的目的是什麼?在互聯網上提供的大多數例子都可以通過在WHERE語句中加入類似的標準來解決。什麼是使用非Equi加入的有效用例? >,> =,<, <=, <>
舉例:使用WHERE語句
SELECT T1.OrderNum, T1.SpecialOfferAppliedDate AS SOAD, T1.SpecialOfferID, T2.StartDate, T2.EndDate
FROM OrderDetail AS T1
INNER JOIN SpecialOffer AS T2
ON T1.SpecialOfferID = T2.SpecialOfferID
AND T1.SOAD < T2.EndDate
AND T1.SOAD >= T2.StartDate
例子:
SELECT T1.OrderNum, T1.SpecialOfferAppliedDate AS SOAD, T1.SpecialOfferID, T2.StartDate, T2.EndDate
FROM OrderDetail AS T1
INNER JOIN SpecialOffer AS T2
ON T1.SpecialOfferID = T2.SpecialOfferID
WHERE T1.SOAD < T2.EndDate
AND T1.SOAD >= T2.StartDate
編輯:是否有任何疑問有人可以提供,我將不得不通過非等距加入加入?在這一點上,它似乎只與以下方面有關:HUGE表上的個人偏好或性能增加
如果它是一個「左連接」使用第一種形式會更有意義因爲使用where子句考慮到'null'值)將會把它變成一個'inner join'。 – SqlZim
問題的標題似乎與實際問題沒有任何關係......? – Brandon
爲什麼WHERE比ON更有效? – Caleth