2014-02-07 34 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

相关问题