通过joinsql创建表
我需要通过来自不同模式的两个表的左join语句在数据库中创建一个新表。下面是我的代码:通过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
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周围的括号是无用的。谢谢你的帮助。