我已将连接表与其相关实体合并,因为关系是一对一的。
现在原始的 ww_staff
表直接保存 ww_contacts
详细信息。
我根据我认为从 MySQL 的角度来看合乎逻辑的观点写了以下语句
但是——它不高兴。
任何人都可以看到类似的解决方案或公然的违规行为吗?
INSERT INTO
ww_staff s
(phone, mobile, email, skype)
VALUES
(
SELECT w.phone, w.mobile, w.email, w.skype
FROM ww_contacts w
JOIN ww_staff s
ON s.staff_ID = w.contacts_ID
);
最佳答案
只需删除 VALUES()
INSERT INTO ww_staff s (phone, mobile, email, skype)
SELECT w.phone, w.mobile, w.email, w.skype FROM ww_contacts w
JOIN ww_staff s
ON s.staff_ID = w.contacts_ID;
--更新
由于您是从 ww_contacts w JOIN ww_staff
中进行选择 - 所有记录都已存在 - 并且您不想插入重复项,因此请使用带有联接的更新:
UPDATE ww_staff s JOIN ww_contacts w ON s.staff_ID = w.contacts_ID
SET s.phone = w.phone, s.mobile = w.mobile, s.email = w.email, s.skype = w.skype;
下次请在您的问题中详细解释您想要做什么。
关于mysql - 使用 sql 语句将 MySQL 数据库中的数据从一个表传输到另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4352621/