sql - SELECT 返回多个值的 INSERT 引发错误“子查询返回超过 1 个值”
问题描述
尝试在表中插入多个值(与 SELECT 结果中的 ID 一样多),但 select Id 查询返回超过 1 个值(预期),因此出现错误。
INSERT INTO table1 (UserId, Date, ...)
VALUES
((SELECT Id from table2 WHERE ClientId = 26), GETDATE(), ...)
什么是最好的方法?
解决方案
我不确定你的列是如何排列的。看起来GETDATE()
正在插入Name
. 但如果这是你需要的,那这个呢?你可以只做一个INSERT SELECT
没有VALUES
.
INSERT INTO table1 (UserId, Name, ...)
SELECT Id, GETDATE(), ...
from table2
WHERE ClientId = 26
推荐阅读
- python - 子进程 stdout readline 挂起特殊命令调用
- firebase - Firebase Firestore - 数据之间的延迟写入并可用于查询
- azure-pipelines - 是否可以为 Azure Pipelines 目录中的每个文件创建一个步骤?
- javascript - 如何根据另一个元素的 getBoundingClientRectAsync 值计算窗口宽度?
- node.js - 如何使用 typescript 和 ajv 使 oneOf 字段可以为空
- amazon-web-services - AWS cognito 身份池 ABAC 如何映射自定义多值属性?
- php - 如何在shopify中仅获取php中数组的最后一个值
- text-to-speech - 使用 MS 认知语音服务的 SSML 中的词典被忽略
- javascript - Javascript/jQuery:输入总是显示为空,即使它不是
- python - if 语句列表理解风格