Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于查询将行插入MySQL表_Sql_Mysql_Insert - Fatal编程技术网

基于查询将行插入MySQL表

基于查询将行插入MySQL表,sql,mysql,insert,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列设置为自动增量;如果我运行上述操作,这是否正确?同样,e、f、…、h列有默认

我有一个问题

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列设置为自动增量;如果我运行上述操作,这是否正确?同样,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

您可以使用
INSERT。。。选择
语法。但是,您必须使用临时表,因为无法将其插入到select语句中加入的表中

create temporary table Y like X;
INSERT INTO Y (x,y,z) SELECT a,b,c FROM A LEFT JOIN X ON a=x;
INSERT INTO X SELECT * FROM Y;

我认为这不起作用,因为select引用了他插入的表。@Cfreak:
X
不是同一个表
create temporary table Y like X;
INSERT INTO Y (x,y,z) SELECT a,b,c FROM A LEFT JOIN X ON a=x;
INSERT INTO X SELECT * FROM Y;