MySql插入一个select的结果

Roc*_*och 31 mysql select insert

我想知道我是否可以运行这样的请求:

INSERT INTO t2 (a, b) 
VALUES (
 SELECT a, b
 FROM `t1` AS o
 WHERE o.id NOT 
 IN (
  SELECT a
  FROM t2 
  )
)
Run Code Online (Sandbox Code Playgroud)

想法是用t1中的一些数据填充t2,但我的语法肯定是错的.

谢谢你的帮助

Joe*_*lli 52

VALUESSELECT语句插入时不使用关键字.

INSERT INTO t2 (a, b) 
 SELECT a, b
 FROM `t1` AS o
 WHERE o.id NOT 
 IN (
  SELECT a
  FROM t2 
  )
Run Code Online (Sandbox Code Playgroud)


ajr*_*eal 5

除掉 values

喜欢

INSERT INTO t2 (a, b) 
SELECT a, b
FROM `t1` AS o
WHERE o.id NOT 
IN 
(
  SELECT a
  FROM t2 
);
Run Code Online (Sandbox Code Playgroud)

或更简单的格式

INSERT INTO t2 (a, b) 
SELECT o.a, o.b
FROM `t1` AS o
LEFT JOIN t2 ON o.id=t2.a
WHERE t2.a IS NULL;
Run Code Online (Sandbox Code Playgroud)