2013-10-01 44 views
1

我有兩個表AgentFareSalesHeader分別有hdrGuidhdrGuid,DocumentNumber作爲列。 我必須執行基於文檔編號的查詢,但是我無法弄清楚以下兩個查詢中哪一個最適合。SQL語句結構化

SELECT agf.Fare , agf.Tax . agf.Commission 
FROM AgentFare as agf 
    INNER JOIN SalesHeader as h ON agf.hdrGuid = h.hdrGuid AND h.DocumentNumber = 'XYZ' 

OR

SELECT agf.Fare , agf.Tax . agf.Commission 
FROM AgentFare as agf 
    INNER JOIN SalesHeader as h ON agf.hdrGuid = h.hdrGuid 
WHERE h.DocumentNumber = 'XYZ' 

哪兩個是比較合適?

回答

1

應該使用「ON」語句來定義應該連接2個表的列。 「WHERE」語句旨在過濾您的結果。

第二個選項更適合使用。

2

第一種方法比較合適,因爲與第二種查詢相比,它會花費更少的時間。

+0

這就是我所問的。謝謝@KT –

+1

爲什麼你認爲這需要更少的時間? –

+0

在第一種情況下,請參閱您將要加入的兩張表格,但是在其他情況下,首先執行加入,然後再放入一個過濾器。因此,第二個查詢需要更多時間。這是我想的。 –

1

您可能會發現這是個人偏好的情況。我的偏好是第二個。我很清楚你加入的是什麼,你正在過濾什麼。如果您更改代碼以便用參數替換'XYZ',那麼對於我來說,第二種方法更容易。我期望在底部找到「過濾器」。