syntax-error - INSERT sql 语句中的嵌套 SELECT

标签 syntax-error sql insert-statement

关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

4年前关闭。




Improve this question




有人能告诉我为什么这不起作用吗?

INSERT INTO Medical_History (pid, grafts, allergies,  diseases, surgearies, treatment)
VALUES ((SELECT pid FROM Pet WHERE pet_name='Jack' AND cid=(SELECT cid FROM Customer WHERE last_name='Iwannidis' AND first_name='Giwrgos')),
       'grafts', 'allergies', 'diseases', 'surgearies', treatments');

我收到一个语法错误:
unrecognized token "');"

最佳答案

select嵌套在 values语句看起来错误(我不确定所有数据库都接受它)。一种更典型的表达方式是:

INSERT INTO Medical_History (pid, grafts, allergies,  diseases, surgearies, treatment)
    SELECT pid, 'grafts', 'allergies', 'diseases', 'surgearies', 'treatments'
    FROM Pet
    WHERE pet_name='Jack' AND
          cid=(SELECT cid
               FROM Customer
               WHERE last_name='Iwannidis' AND first_name='Giwrgos'
              );

如果子查询返回多个值,这一点尤其重要。那么查询很可能会出错。

关于syntax-error - INSERT sql 语句中的嵌套 SELECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16782597/

相关文章:

sql - 使用子查询时的Informix “A syntax error has occurred.”

arrays - 在 bash robuSTLy 中传递部分命令

sql - 如何使用窗口函数获取最高价格及其 ID?

java - 带有 HQL 的新对象 - StandardAnsiSqlAggregationFunctions 上的 NPE,确定 JdbcTypeCode

mysql - 这个 INSERT 配置文件可以与我的面向 Mysql InnoDB 的数据库一起使用吗?

java - 将jsp表单中的整数插入数据库表中?

ms-access - MS Access DLOOKUP 与文本和嵌套 DLOOKUP 的条件

sql - postgresql:如何从 group by 子句中获取主键?

php - 如何防止插入语句超时?

node.js - Netbeans 8.1 中的粗箭头函数?