如何在INSERT操作中进行SELECT?
insert into tableX (a_id, b_id)
VALUES ((SELECT service_id
FROM tableY
WHERE id = 10, 2));
但是服务器返回语法错误,为什么?
SQL Error [156] [S0001]: Incorrect syntax near the keyword 'select'.
虽然我的原始答案给出了可行的解决方案,但实际上我对错误原因有误。在VALUES子句中使用标量子查询没有任何问题。问题中陈述的问题很简单,就是一个圆括号放在错误的位置。标量子查询必须用括号括起来。
这应该工作:
insert into tableX (a_id, b_id)
VALUES (
(SELECT service_id
FROM tableY
WHERE id = 10)
, 2
);
原始答案
VALUES
只能与文字值一起使用。但是,可以在子查询中使用文字值。做这个:
insert into tableX (a_id, b_id) SELECT service_id, 2 FROM tableY WHERE id = 10
问题内容: 我是学生,这是家庭作业…表格在那里,但没有插入数据。 感谢您的任何建议 SQL语句: 问题答案: 您在其中没有子句(“ Ledonna”之后的子句) 请注意,如果您双击Management Studio中的错误消息,它将带您进入代码的问题位。
这是我的疑问- 我在执行时遇到这个错误 错误:您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以获得使用“alter TABLE tmp drop category_id”附近的正确语法;在第2行插入类别SELECT 0'错误号:1064 但是当我直接在数据库中运行查询时,我不会得到任何错误。请帮帮我!
问题内容: 我有一个Java代码: 然后我有SQLException: 您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在’?’附近使用正确的语法。 问题答案: 您应该执行不带任何参数的,如下所示: 使用参数调用将按原样执行提供的查询(没有绑定参数)。
问题内容: 我正在尝试向表中插入其他行,该表要求从另一个表中检索一个值。以下是查询示例: 表的结构为。 我知道以上查询是错误的。有没有办法在插入行时从其他表中检索1个值? 问题答案: 一些DBMS会接受以下内容,并在SELECT语句的周围加上括号:
问题内容: 我是Firebird的新手,我遇到了很多问题。我想在从另一个表中选择的表中插入各种行。 这是代码: ID应该从66开始自动递增。posid应该从1开始自动递增。 实际上,它没有插入任何内容。 我正在使用Firebird Maestro,并且刚刚打开了SQL脚本编辑器(在执行脚本时不会抛出任何错误消息)。 有谁能够帮我? 谢谢! 附加信息: 触发器应自动增加“ ID”列-但我不知道如何精
问题内容: 我已经浏览了其他几个此类问题,但没有找到一个可以帮助我解决此问题的问题。我想做的是:我想为所有员工创建一个表,以分配将在其他多个表中使用的表。那张桌子和其他桌子工作正常。当我尝试基于该表创建新表时,就会出现我的问题,这样我就可以仅基于特定类型的员工来调出信息。在所有三个表的语句上,我得到此错误: ‘(’附近的语法不正确。期望的ID。 我一直在搜索如何解决它,但是我没有尝试过。我想念什么