是否可以从两个表(具有相同字段)中将数据抓取到一个视图中。基本上,所以视图将数据看作是一张表。将两个表中的数据合并为一个视图
回答
是,使用UNION -
CREATE VIEW vw_combined AS
SELECT * FROM TABLE1
UNION ALL
SELECT * FROM TABLE2
...要求有相同的列数,并在每个位置上的数据类型匹配。
..preferrably,使用JOIN:
CREATE VIEW vw_combined AS
SELECT *
FROM TABLE1 t1
JOIN TABLE2 t2 ON t2.col = t1.col
但我想提醒不要根据意见 - 如果没有兑现,他们只准备的SQL语句。没有性能优势,并且如果基于另一个视图构建视图,可能会对性能产生负面影响。此外,视图很脆弱 - 它们可以改变,如果有问题,直到使用支持视图才会知道。
create or replace view view_name as
select * from table_1
union all select * from table_2
注意: 视图中的列是在创建视图时设置的。视图创建后向table_1和table_2添加列不会显示在view_name中。您将需要重新运行上面的DDL以显示新列。
如果你想重复的行被collasped单排(但对于服务器可能更多的工作):
create or replace view view_name as
select * from table_1
union select * from table_2
一般来说它是坏的形式在选择列表中使用*
,但假设查询使用视图将选择他们需要的,我会在这里使用它,而不是明确命名所有的列。 (特别是因为我不想在table_1和table_2发生更改时添加列名称。)
+1:我忘了在创作时提及这些专栏 – 2010-07-16 17:30:54
@OMG小马:最近我有点想到它,它在记忆银行中很新鲜。 – 2010-07-16 17:50:32
- 1. 将两个表中的数据合并到一个视图中
- 2. 将两个PostgreSQL表中的数据合并为一个
- 3. 将两个视图合并到一个视图中
- 4. 将两个表合并为一个
- 5. Mysql将两个表合并为一个
- 6. 将两个表格合并为一个不带交叉数据
- 7. 将两个聚合查询合并到一个视图中
- 8. 将两个文件的数据合并到一个列表中
- 9. 两个数据帧合并为一个
- 10. SQL - 在一个表/视图中合并两个表格内容
- 11. 将两个列表数据合并为单个列表C#
- 12. 将同一数据集中的两个表合并到一个表中
- 13. 将来自两个DAO的数据合并为一个TO
- 14. SQL - 将两个数据库表合并到一个数据库表中
- 15. 将多个数据透视表合并到另一个数据透视表
- 16. 根据属性将两个列表合并为一个
- 17. Python - 合并两个表中的数据
- 18. 将两列中的数据合并为一个用于排序
- 19. 将列表中的两个对象合并为一个
- 20. 如何将两个表中的列合并为一个输出?
- 21. 将两个表中的列合并为一个
- 22. 数据库将两个查询合并为一个
- 23. 在SQL Server 2008中将两个表合并到一个索引视图中
- 24. 将两个查询合并为一个
- 25. 将两个布局合并为一个
- 26. 将两个Feed合并为一个
- 27. RxJava2将两个Flowables合并为一个
- 28. 将两个查询合并为一个
- 29. 将两个纹理合并为一个
- 30. 将两个Artifactories合并为一个
“最好使用JOIN”只有满足要求时才可以。我没有看到表1和表2中的行在连接方式上有意义的联系。 OP声明:“有相同的领域”,所以如果类型匹配,工会就会工作。 – 2010-07-16 17:32:14
@ Shannon Severance:我不认为有必要对逻辑进行审查或提供可能有用的其他信息。 – 2010-07-16 17:37:04
我同意提及连接是很好的,因为有两种方法可以将两个表合并在一起,使得结果比表自己的表更长或更宽。 (对于那个顺便说一句,+1)。我不认为一个人对于另一个人比较喜欢,而不知道OP想要做什么。 – 2010-07-16 17:50:09