2012-06-29 26 views
1

我知道我可以將表與sql查詢結合起來,但這不是我正在尋找的。mysql - 組合表中的數據

想象一下,有10個表格,都是相同的,但由於某些原因,我不想將這些數據混合在一張表中。雖然!在另一方面,創建某些搜索結果我希望能夠做一個SQL查詢:(從combined_table *其中名稱=「不管」)

在我得到的飛行從所有10個數據表...

可能,是/否?

+0

沒有,讓來自所有表的飛行數據,必須由表(可能使用工會,如果他們是相同的)一個SQL查詢合併或使用UR服務器端代碼 – amd

回答

2

你幾乎肯定希望把這些數據放到一張表中。

假設您有十種不同類型的數據。添加一個名爲type的列(您應該選擇一個更好的名稱)並允許其值爲1到10.現在,您的查詢將不會發生變化。

你仍然可以得到與數據分開,如果你想:

SELECT * from yourtable 
WHERE name = 'whatever' 
AND `type` = 3 

唯一的原因,我能想到的沒有做它,如果你有不同的用戶有不同的權限,你想用表來控制哪些用戶可以看到哪些數據。


如果儘管好處,你還是不希望把數據放在一個表,你可以通過使用UNION ALL解決您的問題。

CREATE VIEW yourview AS 
SELECT col1, col2, ..., coln FROM table1 
UNION ALL 
SELECT col1, col2, ..., coln FROM table2 
UNION ALL 
SELECT col1, col2, ..., coln FROM table3 
UNION ALL 
etc... 
+0

我知道一切都使用了類似的功能應該在同一張表中,但由於客戶的要求,在這種情況下確實是不可能的。我想到了UNION語句,但是這意味着每次添加另一個源代碼時都要重寫sql代碼。 – renevdkooi