是否可以從兩個表(具有相同字段)中將數據抓取到一個視圖中。基本上,所以視圖將數據看作是一張表。將兩個表中的數據合併爲一個視圖
回答
是,使用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. 將兩個表中的mysql數據合併爲一個數據集並更新
- 5. 將兩個視圖合併到一個視圖中
- 6. 將兩個表合併爲一個
- 7. Mysql將兩個表合併爲一個
- 8. 將兩個表合併爲一個
- 9. 將兩個表合併爲一個
- 10. 將兩個兩個數據庫上下文合併爲一個?
- 11. 將兩個表格合併爲一個不帶交叉數據
- 12. 將兩個聚合查詢合併到一個視圖中
- 13. 將兩個數組合併爲一個
- 14. 將兩個函數合併爲一個
- 15. 將兩個數組合併爲一個
- 16. 將兩個文件的數據合併到一個列表中
- 17. 兩個數據幀合併爲一個
- 18. SQL將兩個視圖合併爲一個
- 19. 將兩個表中的兩列合併爲一個
- 20. MongoDB:如何將兩個集合/數據庫合併爲一個?
- 21. SQL - 在一個表/視圖中合併兩個表格內容
- 22. 試圖將兩個單獨的Excel表合併爲一個
- 23. 將兩個列表數據合併爲單個列表C#
- 24. 將同一數據集中的兩個表合併到一個表中
- 25. 將兩個數據庫合併到一個數據庫中
- 26. 將來自兩個DAO的數據合併爲一個TO
- 27. 將來自兩個數據框的列合併爲一個
- 28. 將數據集的兩個結果合併爲一個
- 29. SQL - 將兩個數據庫表合併到一個數據庫表中
- 30. 將多個數據透視表合併到另一個數據透視表
「最好使用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