2014-01-06 148 views
1

我有两个具有不同名称的完全相同的表,我想用某种查询将其合并到一个可用的数组数据集中。我听说UNION功能对此很有帮助,但我从未使用过。将两个表中的mysql数据合并为一个数据集并更新

确定这样继承人一些伪代码表代码:

TABLE_1 & TABLE_2

我会用得到查询两个表中的数据是:

SELECT col_1, col_2 FROM TABLE_ WHERE ... 

╔═════════╦═══════════╗ 
║ col_1 ║ col_2 ║ 
╠═════════╬═══════════╣ 
║  37 ║   1 ║ 
║  37 ║   2 ║ 
║  ... ║  ... ║ 
╚═════════╩═══════════╝ 

我怎么能结合数据从两个表中获取一个数据集?我也想更新数据集中的记录,但是如果我不知道数据源自哪个表,我怎么能这样做呢?

在此先感谢。

+0

“合并成一个集”不清楚...插入一个新表?现有的表格?以某种方式在数组中使用? –

+0

我已更新它说可用阵列数据集* –

+0

好的,那么是的,下面的答案将起作用。 –

回答

3

使用UNION:

(SELECT col_1, col_2, 'TABLE_1' AS original_table FROM TABLE_1 LIMIT 0,250) 
UNION 
(SELECT col_1, col_2, 'TABLE_2' AS original_table FROM TABLE_2 LIMIT 0,250) 

进一步信息:

UNION ALL也将是这将使你重复相同的行选项(根据您提供的数据,似乎你不会需要这个) 。

记录的更新将简单地使用where col_1 = {value} and col_2 = {value2} ...无论哪张表是始发者。

编辑:这里是工作http://sqlfiddle.com/#!2/71a88/1

+0

如果我希望从第一个表中获得250行,而从第二个表中获得250行,我会使用LIMIT 250和LIMIT 500? –

+0

不,你会在每个选择上加上“LIMIT 0,250”。 –

+0

不幸的是,不起作用 –

相关问题