mysql - 使用 sql 语句将 MySQL 数据库中的数据从一个表传输到另一个表

标签 mysql insert-select

我已将连接表与其相关实体合并,因为关系是一对一的。

现在原始的 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/

相关文章:

mysql - 如何将WordPress的UberMenu中的子菜单直接添加到数据库中(内存不足错误)

mysql - 如何在 REPLACE() 函数中使用数组?

mysql - 如何用MySQL复制一个表并添加一个字段?

mysql - 插入唯一行而不更新旧行

php - 语法错误:MySQL Insert Select

SQL:多次复制一行,每次更改一个值

java - 在 Spring Boot JPA 中编辑对象值和使用 save() 时 MySQL java.sql.SQLSyntaxErrorException

MySQL DEFINER 规范

mysql - 这是否可以将流量分配到我的 RDS 只读副本?

sql - 使用 INSERT...SELECT 返回 RETURNING 的替代方法