通过JOIN SQL创建表

时间:2016-10-24 20:53:58

标签: sql oracle join left-join

我需要通过来自不同模式的2个表的左连接语句在我的数据库中创建一个新表。以下是我的代码:

CREATE TABLE NEW_TABLE
  FROM SCHEMA_1.TABLE_A X
  LEFT JOIN SCHEMA_2.TABLE_B Y
     ON X.NAME = Y.NAME 
        AND X.NUMBER = Y.NUMBER

我收到了SQL错误:

  

ORA-00922:缺少或无效的选项
  00922. 00000 - “遗失或无效选项”

非常感谢任何帮助。感谢。

2 个答案:

答案 0 :(得分:0)

您缺少as select子句:

CREATE TABLE NEW_TABLE
AS ( -- This was missing
    SELECT    * -- So was this
    FROM      SCHEMA_1.TABLE_A X
    LEFT JOIN SCHEMA_2.TABLE_B Y ON X.NAME = Y.NAME AND
                                    X.NUMBER = Y.NUMBER
   )

答案 1 :(得分:0)

不要使用NUMBER作为列名,它是oracle关键字。

来到查询,如果两个表中的唯一常用列是NAMENUMBER,那么您可以尝试这个

 CREATE TABLE NEW_TABLE
 AS (
SELECT    * 
FROM      SCHEMA_1.TABLE_A X
LEFT JOIN SCHEMA_2.TABLE_B Y Using(NAME,NUMBER)
)