我正在尝试通过多嵌套联接创建一个新表,但是不断出错:
Incorrect syntax near ')'.
这是连接语句:
select *
FROM table1
LEFT JOIN table2
ON table1.col1 = table2.col1
FULL OUTER JOIN table3
ON table3.col1 = table1.col1
AND table3.date >= '2017-10-01'
这是我尝试创建表的方式:
select * into newtable from (
select *
FROM table1
LEFT JOIN table2
ON table1.col1 = table2.col1
FULL OUTER JOIN table3
ON table3.col1 = table1.col1
AND table3.date >= '2017-10-01'
)
上一个机箱我在做什么错?
答案 0 :(得分:0)
我将使用CTE(公用表表达式):
with
x as (
select *
FROM table1
LEFT JOIN table2
ON table1.col1 = table2.col1
FULL OUTER JOIN table3
ON table3.col1 = table1.col1
AND table3.date >= '2017-10-01'
)
select * into newtable from x
答案 1 :(得分:0)
您根本不需要子查询。只需使用into
:
select *
into newtable
FROM table1
LEFT JOIN table2
ON table1.col1 = table2.col1
FULL OUTER JOIN table3
ON table3.col1 = table1.col1
AND table3.date >= '2017-10-01';
当然,select *
不会真正起作用,因为您的列名必须唯一。但我猜您是在实际查询中列出了它们。
此外,过滤full outer join
中的表也很棘手。我通常为此目的推荐一个子查询。