JOIN列在两个表中具有相同名称时的T-SQL语法缩写?

sta*_*ica 4 sql t-sql sql-server syntax join

在T-SQL中,当两个表中具有相同名称的两个列上发生这样的连接时,是否可以简化JOINspecification(ON …)以实现两个表之间的equi-join?

CREATE TABLE T1 (X … PRIMARY KEY);
CREATE TABLE T2 (X … REFERENCES T1 (X));
Run Code Online (Sandbox Code Playgroud)

通常我会编写如下(内部)连接,如下所示:

SELECT … FROM T1 JOIN T2 ON T1.X = T2.X;
Run Code Online (Sandbox Code Playgroud)

我想要的是更简单的东西,例如:

SELECT … FROM T1 JOIN T2 ON X;
Run Code Online (Sandbox Code Playgroud)

这种ON …规范的缩写是否可能以某种方式?(我希望答案是"不",但我想确定.)

如果没有,有什么特别的原因可以吗?(例如,当连接两个以上的表时,它是否可能导致频繁的列模糊,因此几乎没有实际用途?)

Jam*_*ieA 7

ANSI 92 SQL标准中存在自然连接

SELECT … FROM T1 NATURAL JOIN T2
Run Code Online (Sandbox Code Playgroud)

但是,SQL Server不支持此功能.可能是一件好事,因为当你没有指定连接列显式时可能存在歧义.

没有像你提到的语法那样的缩写

    FROM T1 JOIN T2 ON X;
Run Code Online (Sandbox Code Playgroud)