我想知道我是否可以运行这样的请求:
INSERT INTO t2 (a, b)
VALUES (
SELECT a, b
FROM `t1` AS o
WHERE o.id NOT
IN (
SELECT a
FROM t2
)
)
这个想法是用t1中的一些数据填充t2,但我的语法肯定是错的。
感谢您的帮助
答案 0 :(得分:52)
从VALUES
语句插入时,您不使用SELECT
关键字。
INSERT INTO t2 (a, b)
SELECT a, b
FROM `t1` AS o
WHERE o.id NOT
IN (
SELECT a
FROM t2
)
答案 1 :(得分:5)
删除values
像
INSERT INTO t2 (a, b)
SELECT a, b
FROM `t1` AS o
WHERE o.id NOT
IN
(
SELECT a
FROM t2
);
或更易读的格式
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;
答案 2 :(得分:3)
您的查询中不需要VALUES。