2012-01-03 67 views
2

我可以在我正在处理的MySQL数据库问题上使用一些帮助。对于几乎相同的问题,我已经经历了一堆旧的答案 - 但没有运气。有些答案看起来像是我需要的(JOIN,INNER JOIN,JOIN LEFT), - 但仍然没有给我正确的输出。我得到了无论是一个奇怪的输出或一个普通的错误消息...将来自多个表的相同结果集合并到一个结果集中

OK这里有云:

我有4个表 - 它们都包含相同的字段数 - 使用相同的名称。所以4个不同的表格有重复的字段。

我需要从所有4个表中的字段eid = 219中获取所有内容到一个数组中。

我需要能够限制输出为20行 - 所以我可以在不同的页面上显示它们。这意味着起点将有所不同,取决于当前页...

任何想法如何去做这件事?

比方说,该表是:

表1 表2 表3 表4

而且它们都包含字段: ID EID 名 tekst

THX 约翰

回答

3

你需要一个联盟q uery:

(SELECT id, eid, name, tekst, 'from table 1' as table_source FROM table1) 
UNION 
(SELECT id, eid, name, tekst, 'from table 2' as table_source FROM table2) 
UNION 
(SELECT id, eid, name, tekst, 'from table 3' as table_source FROM table3) 
UNION 
(SELECT id, eid, name, tekst, 'from table 4' as table_source FROM table4) 
ORDER BY name LIMIT 20 
+0

工程就像一个魅力。非常感谢... – 2012-01-03 11:13:11

+0

但是,我现在意识到,我有新的问题,然后:我有任何方式来告诉哪一行是从哪个表? – 2012-01-03 11:14:03

+1

检查编辑的答案。您可以将任何想要的文本作为列扔出。因此,将table_source静态值更改为您需要区分表的任何内容。 – davidethell 2012-01-03 11:52:25

相关问题