14

I am trying to join a common table expression to an existing table (table1) as follows.

select column1, column2 from table1

left outer join

  ;with cte as (
    select column1, column2 from table2)

  select column1, column2 from cte

on table1.column1 = cte.column1

The errors are:

  1. Incorrect syntax near ';'.
  2. Incorrect syntax near the keyword 'on'.

What am I doing wrong? Should I be using a CTE for this task?

Sergey Koulikov
  • 267
  • 4
  • 7
  • 16

1 Answers1

28

The CTE must come at the beginning of the query.

with cte as (
    select column1, column2 from table2
)
select column1, column2 from table1
   LEFT JOIN cte
on table1.column1 = cte.column1;
Daryl Teo
  • 5,394
  • 1
  • 31
  • 37