Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过joinsql创建表_Sql_Oracle_Join_Left Join - Fatal编程技术网

通过joinsql创建表

通过joinsql创建表,sql,oracle,join,left-join,Sql,Oracle,Join,Left Join,我需要通过来自不同模式的两个表的左join语句在数据库中创建一个新表。下面是我的代码: 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:缺少或无效选项 92200000-“缺少或无效选项” 任何帮助都将不胜感激。谢谢。您缺少as

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

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:缺少或无效选项
92200000-“缺少或无效选项”


任何帮助都将不胜感激。谢谢。

您缺少
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
   )

您缺少
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
   )

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

在查询中,如果两个表中唯一的公共列是
NAME
NUMBER
,那么您可以尝试以下操作

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

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

在查询中,如果两个表中唯一的公共列是
NAME
NUMBER
,那么您可以尝试以下操作

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

您缺少一个
select
。是否确实要创建一个表而不是创建一个视图?您可能更希望创建一个连接两个表的视图,这样您就可以查询视图并获取最新数据,而不是使用过时的数据副本。我不熟悉使用视图,因此如果我理解正确,视图更具动态性,并且随着两个父表的更新而更新?您缺少一个
select
。是吗是否确实要创建表而不是创建视图?您可能更希望创建一个连接两个表的视图,这样您就可以查询视图并获取最新数据,而不是拥有过时的数据副本。我不熟悉使用视图,因此如果我理解正确,视图更具动态性,并且随着两个父表的更新而更新?
SELECT*
不会作为两个表使用表共享同名字段。啊哈!谢谢。
SELECT*
将不起作用,因为两个表共享同名字段。啊哈!谢谢。挑剔:选择框周围的括号是无用的。感谢您的帮助。吹毛求疵:select周围的括号是无用的。谢谢你的帮助。