SQL语句结构化

时间:2013-10-01 09:58:48

标签: sql sql-server

我有两个表AgentFareSalesHeader分别以hdrGuidhdrGuidDocumentNumber为列。 我必须根据文档编号执行查询,但是我无法确定以下两个查询中哪一个最合适。

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'

哪2个更合适?

3 个答案:

答案 0 :(得分:2)

第一种方法更合适。与第二次查询相比,它会花费更少的时间。

答案 1 :(得分:1)

应该使用“ON”语句来定义应该连接哪些列的表。 “WHERE”语句旨在过滤您的结果。

第二个选项更适合使用。

答案 2 :(得分:1)

您可能会发现这是个人偏好的情况。我倾向于第二个。我很清楚你加入了什么以及你过滤了什么。如果您更改代码以便将“XYZ”替换为参数,那么对我来说第二种方式更容易。我希望在底部找到“过滤器”。