比方说,比如:来自不同表合并两列在一起
我有两个表:OLD_DATA和NEW_DATA。
两个OLD_DATA和NEW_DATA有一列称为this_is_col。
两个OLD_DATA和NEW_DATA有日期(2010-02-06,2010-01-09,2007-06-02等)的行不同(数百个)。两个表格不一定具有相同的日期,但它们都具有相同的格式。
这两个表的字段是各种整数。
我的任务:
复制从领域OLD_DATA到NEW_DATA。
如果两个表中都存在日期,则将替换new_data中的字段。
如果日期不存在new_data,那么将添加正确的行并将该字段复制。
这是多远我已经得到了:
创建一个临时列:
ALTER TABLE `new_data` ADD `tempColumn` TEXT NULL;
复制了数据从OLD_DATA:
INSERT INTO `new_data` (`tempColumn`) SELECT `this_is_col` FROM `old_data`;
联合临时柱和new_data。 this_is_col。 (我还没有真正想到这一步,因为我没有得到这么多)。
MERGE? `tempColumn` `this_is_col`;
删除临时表
ALTER TABLE `new_data` DROP `tempColumn`;
在(通过将数据传输至临时列)执行第二个动作我得到这个错误:
#1062 - Duplicate entry '0000-00-00' for key 1
而且现在我卡住了。任何帮助,将不胜感激。我使用MySQL和phpMyAdmin来测试SQL命令。
+1对于一个清楚动手的例子。 – 2011-01-12 11:10:28