-1

所以我在同一个数据库中有 2 个 MySQL 表,其中包含以下列(所有这些都不是 NULL):

tbl1: (url, urlkey, domain, created, 8 列..)

tbl2:(url,urlkey,规范)

这两个表现在都有 100,000 行 - 它们对应于相同的 url、urlkey 值(甚至以相同的顺序插入)。

我想要做的是:将域列从 tbl1 复制到 tbl2 中,并将所有关联的域行值从 tbl1 复制。因此,在此之后,tbl2 应该看起来像: (url, urlkey, canonical, domain) 并且每行中的 url、urlkey、域值应该与 tbl1 相同。

我尝试了一些涉及 SELECT INTO 和 INSERT INTO 的事情,但没有一个成功地将域列的行值复制到 tbl2 中。

有谁知道如何针对我所处的特定情况执行此操作?请告诉我,谢谢大家

——内森

4

2 回答 2

2

首先,您需要将新列添加到tbl2

ALTER TABLE tbl2 ADD domain char(100) //or whatever the type is

然后你需要像这样填充它:

UPDATE tbl2
JOIN tbl1 ON tbl1.url = tbl2.url AND tbl1.urlkey = tbl2.urlkey
SET tbl2.DOMAIN = tbl1.DOMAIN
于 2014-06-16T17:34:56.877 回答
1
CREATE TABLE temp(SELECT * FROM tbl2);  
ALTER TABLE tbl2 ADD COLUMN domain char(10);  
TRUNCATE tbl2;  
INSERT INTO tbl2 SELECT url,urlkey,domain, temp.canonical FROM tbl1 JOIN temp  
                                      ON tbl1.urlkey = temp.urlkey
于 2014-06-16T17:33:12.467 回答