两个表中的数据到一个视图中

Mar*_*cin 15 sql oracle sql-view

是否可以从两个表(具有相同字段)中将数据捕获到一个视图中.基本上,视图将数据视为一个表.

OMG*_*ies 25

是的,使用UNION -

CREATE VIEW vw_combined AS
   SELECT * FROM TABLE1
   UNION ALL
   SELECT * FROM TABLE2
Run Code Online (Sandbox Code Playgroud)

...要求列数相同,数据类型在每个位置匹配.

..最好是使用JOIN:

CREATE VIEW vw_combined AS
   SELECT * 
    FROM TABLE1 t1
    JOIN TABLE2 t2 ON t2.col = t1.col
Run Code Online (Sandbox Code Playgroud)

但我想根据视图发出警告 - 如果没有实现,它们只是准备好的SQL语句.没有性能优势,如果您基于另一个构建视图,则会对性能产生负面影响.此外,视图很脆弱 - 它们可以更改,如果存在问题,您将无法使用支持视图.

  • "最好是使用JOIN"只有符合要求才能使用.我没有看到表1和表2中的行与连接有意义的方式相关的含义.OP确实声明:"具有相同的字段",因此如果类型匹配,联合将起作用. (4认同)
  • 我同意提及连接是很好的,因为有两种方法可以组合两个表,使得结果比表自己更长或更宽.(对于那个BTW来说是+1.)我不认为一个人在不知道OP正在尝试做什么的情况下对另一个人更感兴趣. (4认同)