在 T-SQL 中,当这样的联接发生在两个列上时,是否可以简化 JOIN
规范 (ON …
) 以实现两个表之间的等联接两个表中的名称相同?
CREATE TABLE T1 (X … PRIMARY KEY);
CREATE TABLE T2 (X … REFERENCES T1 (X));
通常我会编写这样的(内部)连接,如下所示:
SELECT … FROM T1 JOIN T2 ON T1.X = T2.X;
我想要的是更简单的东西,例如:
SELECT … FROM T1 JOIN T2 ON X;
ON …
规范的这种缩写是否可能以某种方式实现? (我预计答案是“否”,但我想确定一下。)
如果没有,有什么特殊原因吗? (例如,当连接两个以上的表时,是否可能会导致频繁的列歧义,从而没有什么实际用途?)
最佳答案
有一个natural join符合 ANSI 92 SQL 标准
SELECT … FROM T1 NATURAL JOIN T2
但是,SQL Server 不支持此功能。这可能是一件好事,因为当您没有明确指定连接列时可能会出现歧义。
没有像你提到的语法这样的缩写
FROM T1 JOIN T2 ON X;
关于sql - 当 JOIN 列在两个表中具有相同名称时,T-SQL 语法缩写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25170859/