所以我在同一个数据库中有2个MySQL表,其中包含以下列(所有这些都是非空的):
tbl1 :( url,urlkey,domain,created,8 more columns ..)
tbl2 :( url,urlkey,canonical)
这两个表现在都有100,000行 - 它们对应于相同的url,urlkey值(甚至以相同的顺序插入)。
我想要做的是:将域列从tbl1复制到tbl2,并将所有关联的域行值从tbl1复制。因此,在此之后,tbl2应该看起来像:(url,urlkey,canonical,domain),并且每行中的url,urlkey,domain值应该与tbl1相同。
我尝试了一些涉及SELECT INTO和INSERT INTO的事情,但没有一个成功地将域列的行值复制到tbl2。
有没有人知道如何针对我所处的特定情况这样做?请让我知道,谢谢大家
- 内森
答案 0 :(得分: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
答案 1 :(得分: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