join Organisation o (NOLOCK) on o.OrganisationID = h.OrganisationId
我只想知道o
之前的nolock
是什么意思?我还看到有人将a
,u
和h
放在nolock
前面 - 它指的是什么?
很抱歉,如果这是一个愚蠢的问题,我只是SQL的初学者。
答案 0 :(得分:1)
o只是组织的别名 - 一个昵称,因此您可以输入更少(查询似乎更清晰)。否则你必须说明长名称并说:
join Organisation (NOLOCK) on Organisation.OrganisationID = h.OrganisationId
答案 1 :(得分:1)
具体而言,o
是table 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作为示例。