如何解决从其他表中选择一个值时插入
我想将insert
个新值where
插入表INSERT INTO table1 (itemId,reservedId) VALUES (SELECT id FROM table2 WHERE condition,213) ;
,其中一个值是从另一个有条件的表中选择的,另一个值是一个常数(硬编码)
此命令给出语法错误
select key,name from localtab where key not in (select key from remotetab);
错误消息:第2行的语法错误
解决方法
语法为INSERT . . . SELECT
:
INSERT INTO table1 (itemId,reservedId)
SELECT id,123
FROM table2
WHERE condition ;
不需要VALUES
。
您已经看到,您不能混合值和选择这样的语句。但是,您可以从同一张表中选择要插入的文字值(请注意,您不应有values
子句-它应由select
语句替换):
INSERT INTO table1 (itemId,reservedId)
SELECT id,213 FROM table2 WHERE condition;
,
您可以使用
insert into yourtable(...) values(...)[,(...)...]
或
insert into yourtable(...) select ...
您的错误是您混淆了两种语法。您将values(...)
包裹在select
周围不需要>>
INSERT INTO table1 (itemId,reservedId)
SELECT id,213
FROM table2
WHERE condition;
请注意,213是reservedId
的值,与where
子句无关。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。