【发布时间】:2011-05-27 06:05:46
【问题描述】:
我想知道我是否可以运行这样的请求:
INSERT INTO t2 (a, b)
VALUES (
SELECT a, b
FROM `t1` AS o
WHERE o.id NOT
IN (
SELECT a
FROM t2
)
)
这个想法是用来自 t1 的一些数据填充 t2,但我的语法一定是错误的。
感谢您的帮助
【问题讨论】:
我想知道我是否可以运行这样的请求:
INSERT INTO t2 (a, b)
VALUES (
SELECT a, b
FROM `t1` AS o
WHERE o.id NOT
IN (
SELECT a
FROM t2
)
)
这个想法是用来自 t1 的一些数据填充 t2,但我的语法一定是错误的。
感谢您的帮助
【问题讨论】:
您的查询中不需要 VALUES。
【讨论】:
删除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;
【讨论】:
从SELECT 语句插入时,不要使用VALUES 关键字。
INSERT INTO t2 (a, b)
SELECT a, b
FROM `t1` AS o
WHERE o.id NOT
IN (
SELECT a
FROM t2
)
【讨论】: