这在sql查询中意味着什么

时间:2014-09-27 00:41:46

标签: sql

join  Organisation o (NOLOCK) on o.OrganisationID = h.OrganisationId

我只想知道o之前的nolock是什么意思?我还看到有人将auh放在nolock前面 - 它指的是什么?

很抱歉,如果这是一个愚蠢的问题,我只是SQL的初学者。

2 个答案:

答案 0 :(得分:1)

o只是组织的别名 - 一个昵称,因此您可以输入更少(查询似乎更清晰)。否则你必须说明长名称并说:

join Organisation (NOLOCK) on Organisation.OrganisationID = h.OrganisationId

答案 1 :(得分:1)

具体而言,otable alias的示例,可以选择与AS一起使用

join  Organisation AS o 

连接条件中包含的h也是table alias,类似这样

FROM Hospitals AS h
JOIN Organisation AS o (NOLOCK) on o.OrganisationID = h.OrganisationId

在大多数情况下,别名用于简化(或缩短)代码,许多人也将其视为使代码更易读。有时可能需要别名;例如,如果在查询中多次使用查找表,则表别名(下面的L1和L2)对于区分连接数据至关重要。

FROM MyDataTable AS D
INNER JOIN MyLookupTable AS L1 D.code1 = L1.lookup_code
INNER JOIN MyLookupTable AS L2 D.code2 = L2.lookup_code

关于使用别名的态度与强烈的支持者和强烈的批评者有很大不同。请参阅this stackoverflow question作为示例。