sql - 根据查询将行插入 MySQL 表

标签 sql mysql insert

我有一个问题

SELECT A.a, A.b, A.c
FROM A
LEFT JOIN X ON A.a = X.x
WHERE X.x IS NULL

它在表 A 中查找在表 X 中没有相应条目的条目。如何将此查询的结果插入表 X?如果我只有几个条目,我会这样做

INSERT INTO X(xa, xb, xc)
VALUES ('a1', 'b1', 'c1'), ('a2', 'b2', 'c2')

(顺便说一句:d 列设置为 auto_increment;如果我运行上面的命令,这样做是否正确?同样,e、f、...、h 列具有默认值;我相信这些将被设置相应地。)

通过导出、在 Excel 中为每一行编写单独的 SQL 片段并执行每个片段,这并不难做到;我问这个主要是为了更好地学习SQL。

(当然我的真实表有更多字段和各种复杂情况,但我认为这种简化就足够了。)

最佳答案

INSERT INTO X (xa, xb, xc) 
   SELECT A.a, A.b, A.c
     FROM A
LEFT JOIN X ON A.a = X.x
    WHERE X.x IS NULL

关于sql - 根据查询将行插入 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4046271/

相关文章:

mysql - Spring Boot服务启动后运行失败,原因是MySQL数据库还没有准备好

mysql - DataMapper 无内存错误 - Sinatra

c - 为什么我的排序代码在 c 中不起作用?

php - MySQL语法错误将php字符串插入表中

无法让我的插入函数在字母二叉字符串树中工作

sql - 在 SQL 中获取日期范围

MySQL 更新以将所有包含 -html 的实例更改为 .html

mysql - 替换最后一个 '/' 之前的所有内容,其中在一列中包含特殊网站

sql - PostgreSQL 中的“WHERE”语法等同于 LEFT OUTER JOIN

mysql - mysql如何建立父子关系