9
A
回答
15
假設,除了具有相同的列名,相同的列包含相同的數據,你要創建一個視圖這是所有這些的結合表。
類似下面應該工作,但我的SQL是生鏽:
(CREATE VIEW view_name AS
(SELECT * FROM table1
UNION
SELECT * FROM table2
UNION
SELECT * FROM table3));
+0
UNION用於將多個SELECT語句的結果組合到一個結果集中。 – 2013-08-12 09:22:23
2
使用union。 Here is explanation
2
使用union語句
select * from table1
union
select * from table2
union
select * from table3
2
你可以,如果你的工會它們(我建議包括一些指標,因爲每個記錄來自哪個表):
select table1.column1, 1 as TableNumber
from table1
union
select table2.column1, 2 as TableNumber
from table2
.. etc ..
12
可能值得注意的是,您可能需要使用「union all」來保留可能存在於多個表中的唯一行。標準聯盟將刪除重複項。
2
除UNION以外,請使用UNION ALL,除非您明確希望排除重複行。 UNION本身需要更長的時間來執行(因爲它可以找到愚蠢的行爲),並刪除重複的行。
8
從查詢中很難判斷您是希望基於UNION返回數據,還是包含離散列的視圖。這顯然有一個效果。
考慮下面的示例:
TableA
ID Name RelatedID
1 John 2
2 Paul 1
TableB
ID Name RelatedID
1 Ringo 1
2 George 1
TableC
ID Name RelatedID
1 Bob 1
TableD
ID Name RelatedID
1 Kate NULL
現在,運行對下面這樣的查詢:
SELECT ID,名稱FROM表A UNION ALL SELECT ID,名稱FROM表B UNION ALL SELECT ID,姓名FROM TableC UNION ALL SELECT ID,姓名FROM表D
此結果s在以下輸出:
1 John
2 Paul
1 Ringo
2 George
1 Bob
1 Kate
這是你在追求什麼?如果是這樣,你使用UNION查詢。現在
,如果你是後的效果是有相關數據的離散視圖,你可能需要做這樣的事情:
SELECT A.ID MasterID, A.Name MasterName,
B.ID BandID, B.Name BandName,
C.ID BlackadderID, C.Name BlackadderName
D.ID BlackadderRealID, D.Name BlackadderRealName
FROM
TableA A
INNER JOIN
TableB B
ON
A.RelatedID = B.ID
INNER JOIN
TableC C
ON
B.RelatedID = C.ID
INNER JOIN
TableD D
ON
C.RelatedID = D.ID
這將導致數據的以下觀點:
MasterID MasterName BandID BandName BlackAdderID BlackAdderName BlackadderRealID BlackadderRealName
1 John 2 George 1 Bob 1 Kate
2 Paul 1 Ringo 1 Bob 1 Kate
相關問題
- 1. 檢查,看是否列表包含相同的元素
- 2. 檢查如果列表包含相同值的4個元素
- 3. 檢查兩個列表是否包含相同的元素
- 4. 檢查兩個列表包含相同的屬性值
- 5. ListFragments包含相同的列表
- 6. 格式有看似相同的列表
- 7. MySQL查找包含多列的相同字符串的行
- 8. 查看多個表格
- 9. 如何查詢包含多個列表的對象列表?
- 10. Linq查詢列表中包含有相同的順序
- 11. 檢查列表是否包含相同的數據
- 12. 查找列表是否包含相同的數據?
- 13. 加入列表包含多個列出了在Python具有相同的價值
- 14. SQL Server:一個表格包含400列或40個表格包含10列?
- 15. 多選列表查看包含複選框
- 16. JoinOverQuery與包含列表的多個表
- 17. 找到一個字符串列表是否包含多個相同的元素
- 18. 對於包含相同列的查詢,返回哪個值
- 19. 如何在多個視圖中包含相同的表單?
- 20. 產生查詢查看多個表格
- 21. 列表中恰好包含三個相同的元素?
- 22. 如何檢查一個Bool值列表是否包含相同的值?
- 23. 多個查詢相同的表,但在不同的列的mysql
- 24. lambda查看列表是否包含來自另一個列表的元素
- 25. 如何查看列表是否包含Python中的另一個列表?
- 26. 包含多個列表的對象python
- 27. 包含多個varbinary列的表
- 28. 在MySQL查詢中包含兩個不同的表格
- 29. 使用閉包的相同行高的多個表格
- 30. 多次包含相同的佈局
您使用的是哪種數據庫服務器? – ysth 2008-12-09 12:37:28
我不確定您的確切設置,但是如果您有4個要用聯合查詢的重複表,則具有類型列的單個表可能會更有意義。除非系統已經存在或者還有其他因素。 – 2008-12-09 13:14:28