16.20 - Example: Left Outer Join Usage - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQL Data Definition Language Syntax and Examples

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
March 2019
Content Type
Programming Reference
Publication ID
B035-1144-162K
Language
English (United States)
Last Update
2019-05-24

The first recursive view definition demonstrates a correct use of a left outer join, which is highlighted in bold. The usage is valid because the recursive relation in the recursive statement of the view definition is used as the outer relation in the left outer join.

    CREATE RECURSIVE VIEW rec (f1, mycount) AS (
      SELECT a1, 0 AS mycount
      FROM nonrec
    UNION ALL
      SELECT a2, mycount + 1
      FROM  rec LEFT OUTER JOIN nonrec ON nonrec.a1 = rec.f1 
      WHERE rec.mycount <= 100);

The second recursive view definition demonstrates a non-valid use of a left outer join, which is highlighted in bold. The usage is not valid because the recursive relation in the recursive statement of the view definition is used as the inner relation in the left outer join.

    CREATE RECURSIVE VIEW rec (f1, mycount) AS (
      SELECT a1, 0 AS mycount
      FROM nonrec
    UNION ALL
      SELECT a2, mycount + 1
      FROM  nonrec LEFT OUTER JOIN rec ON nonrec.a1 = rec.f1 
      WHERE rec.mycount <= 100);

You can use left outer joins without restriction in the seed statement of a recursive view definition.