2014-01-06 215 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

不幸的是,不起作用 –

相關問題