有2张桌子。人和帐户。存在1:n依赖关系(通过ID),因此一个人可以拥有n个帐户。该人有一个电子邮件地址。更改应该是,电子邮件地址将是帐户表中的属性。 所以我为该帐户创建了一个新的属性电子邮件。
如何将此人的所有电子邮件地址值移动或复制到该帐户,如果某人有2个帐户,该电子邮件地址是否已复制或移至这两个帐户?
答案 0 :(得分:0)
首先,没有必要做这样的复制任务。 维持主键和键盘总是更好。表中的外键。
如果你想要复制,请尝试这样的事情。
SELECT TMP.EMAIL INTO ACCOUNT AS 'A' FROM
(SELECT P.EMAIL FROM PERSON AS 'P') AS TMP
WHERE A.ID = P.ID
希望,这就是你想要的。
答案 1 :(得分:0)
以这种方式试试
UPDATE account a
SET email =
(
SELECT email
FROM person
WHERE person_id = a.person_id
)
WHERE EXISTS
(
SELECT *
FROM person
WHERE person_id = a.person_id
);
这是 SQLFiddle 演示
答案 2 :(得分:0)
感谢我的工作如下:
UPDATE
(SELECT * FROM PERSON p JOIN ACCOUNT a ON a.ID=p.ID) t
SET
t.PRIMARYEMAIL = t.EMAIL
WHERE
t.EMAIL IS NOT NULL