Teradata 中与 MySQL 的 USING 相当的语句

3

我的问题与这个类似,但是在Teradata中:

SQL Server的等价于MySQL的USING

是否有这个查询的等效快捷方式?

SELECT * 
  FROM t1 
  JOIN t2 
    ON (t1.column = t2.column)

通常在进行连接时,Teradata不会检查表中是否存在相同命名的列。我认为这是不被支持的。您可以使用相同的ON条件来符合标准。 - Enjoy coding
3个回答

1

不行。你可以使用自然连接来实现最接近的效果:

SELECT
FROM T1, T2
WHERE t1.column = t2.column;

1

是的,这是 ANSI JOIN 语法。例如:

SELECT
   *
FROM T1
   INNER JOIN T2 ON T1.column = T2.column
;

对于多列连接条件,请执行以下操作:

SELECT
    *
FROM T1
   INNER JOIN T2 ON T2.column1 = T1.column1
      AND T2.column2 = T1.column2
   LEFT OUTER JOIN T3 ON T3.column1 = T2.column1 
;

有关详细的、全面的信息和示例,请参阅Teradata® RDBMS SQL 参考手册 - 第6卷 数据操作语句的第2章。


糟糕,原问题中漏掉了“快捷方式”一词。重新表述,答案是“不可以”。;) - Jeff Gentry

0
如果Teradata支持自然连接,那么你就可以使用它了。在MySQL中,自然连接是带有USING子句的内连接。此外,您还可以在NATURAL子句中添加LEFT|RIGHT和OUTER子句,以进一步指定JOIN的方式。
请查看Teradata的文档,希望它支持自然连接。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接