2014-02-07 59 views
0

我有3個表,看起來像這樣:SELECT連續表具有相同的數據類型

TermID | Term | Doc1|Doc2|..|Doc998 | 

1  | tag | 3 | 0 |..| 5  | 

由於原稿張數爲超過我已經創建其他表爲不同的文件的列數在MySQL的限制。第三個表格的列數不同。

我想選擇這3個表中的每一行來計算其單元格的值。問題在於如何從表1-3連續使用SELECT,因爲它們具有不同的列數。

+2

這個數據模型實際上跨越了關係模型設計的界限。考慮轉換爲具有「doc_id」列的結構。你將擁有一張表現良好的表格。問題將變得微不足道。 – 9000

+0

^仍然不是一個好設計。然後用戶將進入列。需要做的是爲用戶提供一個單獨的表格,另一個用於文檔以及用戶與文檔之間的第三個關係。 –

+0

我在列和行中使用了Doc_ID,我使用'單詞'或術語。其實我正在這樣做索引文件。但我現在很困惑。 – krisna

回答

0

使用UNION

SELECT col1, col2 
FROM table1 
WHERE conditions 

UNION ALL 

SELECT col3, col4 
FROM table2 
WHERE conditions 

UNION ALL 

SELECT col5, col6 
FROM table3 
WHERE conditions 

然而,正如評論指出,這是一個非常糟糕的設計。您可以用Document表和Term表替換您的模式,使用外鍵將它們鏈接起來。

+0

我有一個Doc_ID文檔表,但沒有Term表。你的意思是我需要創建術語表嗎? – krisna

+0

感謝編輯格式... – krisna

+0

我不認爲'聯合'將在這種情況下工作;原因是OP表示他所有的3個表格都有不同的列數。 – Rahul

相關問題