mysql - 使用带有附加列的表中的 SELECT * 插入 INTO

标签 mysql sql

如何使用 select * from table 将记录插入到另一个表并添加其他数据?

  • table_a 列:id, name
  • table_b 列:id, name, email, phone

我的查询:

INSERT INTO `table_b` 
    SELECT * 
    FROM `table_a` 
    WHERE `id` = '1' + additional data 

我找到了答案 查询:

INSERT INTO `table_b` 
SELECT a.*, 'email@email.com','1234' 
FROM table_a a 
WHERE `id`='2'

谢谢

最佳答案

您可以只向 SELECT 语句添加常量,例如

INSERT INTO table_b (id, name, email, phone)
SELECT id, name, 'jon.skeet@google.com', '867-5309'
FROM table_a
WHERE id = 1;

请注意,我明确列出了 table_btable_a 中的所有列。虽然并非绝对需要这样做,但它使您的代码更易于阅读、更易于维护,并最大限度地减少以后出错的可能性。

关于mysql - 使用带有附加列的表中的 SELECT * 插入 INTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49423237/

相关文章:

sql - mySQL 中的空值

mysql - 如何将多个 MySQL 行连接到一个字段中?

sql - 最多允许 10 个具有相同 GUID 的项目

sql - 查找给定日期范围、持续时间和不可用日期列表的可用公寓

php - 从数据库或代码库或 magento 中的 CLI 在管理员登录页面上禁用验证码?

mysql 第一次运行后工作正常

mysql - 我有一个 N-N 关系数据,如何通过 mysql 设计我的数据库

php - 如何使用 php 将 MySQL 数据类型名称转换为正则表达式?

MySQL INNER JOIN 和 SELECT

mysql - 我想在 mysql 中使用 Between 运算符,但工作不正常