Teradata 连接语句语法

Teradata join statement syntax

我得到了以下 sql,这在通过 apache calcite 导入时似乎有问题。

SELECT DISTINCT a.abc, t.desc, m.qprs, m.mpn,
  m.ohug, p.tre, p.status
  FROM (table_a m table_b p 
          ON m.mat = p.mat)
          INNER JOIN table_c t ON t.mat = m.mat
  WHERE t.lang = 'E' AND p.plant LIKE '110%'
  ORDER BY p.plant desc;

对 Teradata 有详细了解的人能否确认此语法是否正确?

如果不是,正确的语法是什么?

提前致谢。

该语法不正确。

SELECT DISTINCT a.abc, t.desc, m.qprs, m.mpn, m.ohug, p.tre, p.status
FROM table_a m INNER JOIN
---------------^ missing keyword
     table_b p 
     ON m.mat = p.mat INNER JOIN
     table_c t
     ON t.mat = m.mat
WHERE t.lang = 'E' AND p.plant LIKE '110%'
ORDER BY p.plant desc;

虽然应该允许使用括号,但不需要括号。

添加到 Gordons answer 中,关键字 desc 是保留关键字。最好使用 [] 来避免错误。

SELECT DISTINCT a.abc, t.[desc], m.qprs, m.mpn, m.ohug, p.tre, p.status FROM table_a m INNER JOIN
 table_b p 
 ON m.mat = p.mat INNER JOIN
 table_c t
 ON t.mat = m.mat WHERE t.lang = 'E' AND p.plant LIKE '110%' ORDER BY p.plant desc;