如何执行插入选择

时间:2016-07-05 07:48:04

标签: mysql sql

我尝试使用mysql执行insert选择。 是否可以插入这样的数据?还是有其他方法可以做到这一点?

A = 17

INSERT INTO TABLE1 (x1, x2, x3) 
  SELECT (Y,Z) FROM TABLE2 
  WHERE CONDITION, A

谢谢,

5 个答案:

答案 0 :(得分:0)

从查询的外观来看,您似乎希望在A列中插入x3。您的查询应如下所示:

INSERT INTO TABLE1 (x1, x2, x3) 
  SELECT Y,Z,A FROM TABLE2 
  WHERE CONDITION

或者你可以直接插入A的值,假设它是一个整数。

INSERT INTO TABLE1 (x1, x2, x3) 
  SELECT Y,Z,17 FROM TABLE2 
  WHERE CONDITION

答案 1 :(得分:0)

如果它没有意义的话,请稍微查看一下INSERT ... SELECT Syntax

INSERT INTO TABLE1 (x1, x2, x3) 
  SELECT Y,Z,A FROM TABLE2 
  WHERE A = 17

有时您还想插入硬编码的详细信息(例如17),否则可能存在唯一约束失败等。因此,在您覆盖列的某些值的情况下使用以下内容。

INSERT INTO TABLE1 (x1, x2, x3) 
  SELECT Y,Z,17 FROM TABLE2 

答案 2 :(得分:0)

这应该有效

INSERT INTO TABLE1 (x1, x2, x3) 
  SELECT Y,Z,17 FROM TABLE2 
  WHERE CONDITION

答案 3 :(得分:0)

也许是这样的?

INSERT INTO TABLE1 (x1, x2, x3) 
  SELECT (X,Y,Z) FROM TABLE2 
  WHERE A = 17

答案 4 :(得分:0)

从选择陈述中获取

INSERT INTO TABLE1 (x1, x2, x3) 
  SELECT (Y,Z,17) FROM TABLE2 
  WHERE CONDITION;