如你所知,如果我们选择了两个表,而我们有相同的列名,我们得到如下错误:模棱两可的列名:为什么在某些情况下模糊不清?
'Ambiguous column name 'ColumnName''
我已经知道设置别名不解决这个问题。
然而,似乎如果列的名称是SELECT语句不,然后它的SQL Server 2008 R2(在我的数据库)。兼容性级别设置为100
所以,以下语句不能工作:
SELECT t1.ID
FROM Table1 t1
JOIN Table2 t2 ON (t2.ID = t1.ID)
ORDER BY ID
但很显然,在其他情况下,上述说法不返回一个错误(我知道这是因为它发生在客户的网站) 。同样在SQL小提琴则返回错误都SQL Server 2008和SQL Server上的2012
有谁知道为什么在何种情况下上面的查询仍返回错误或?
我的猜测是这是SQL Server上的版本或设置问题。
注意:链接的副本确实解决了我的问题。兼容性级别设置为80.将其更改为100可解决问题。
@SynerCoder请仔细看了一遍我的问题。 –
这部分是否正确:FROM Table1 t1 JOIN Table1 ON Table2 t2?故意将Table1与Table1连接起来吗? – Ziouas
@Ziouas啊不,谢谢。我只是想展示我的问题 –