SQL查询更多时间执行并最终出错[关闭]

Posted

技术标签:

【中文标题】SQL查询更多时间执行并最终出错[关闭]【英文标题】:SQL query more time to execute and finally get error [closed] 【发布时间】:2020-06-04 06:37:29 【问题描述】:
UPDATE member
SET member.usableSum = (SELECT usablesum
        FROM fundrecord
        WHERE (member.id= fundrecord.memberId) AND id IN (
        SELECT MAX(id)
        FROM [enter image description here][1]fundrecord
        GROUP BY memberId)
        )

【问题讨论】:

你的子查询在这里只允许返回一行,但可能会返回几行。 发布错误消息。 还添加一些示例数据以及您的预期输出。 【参考方案1】:

我猜你想要:

UPDATE member m
    SET m.usableSum = (SELECT fr.usablesum
                       FROM fundrecord fr
                       WHERE m.id = fr.memberId
                       ORDER BY fr.id DESC
                       LIMIT 1
                      );

这将为每个成员返回来自fundrecord 的“最新”usablesum

【讨论】:

【参考方案2】:

请在查询中使用DISTINCT

UPDATE member
SET member.usableSum = (SELECT distinct usablesum
    FROM fundrecord
    WHERE (member.id= fundrecord.memberId) AND id IN (
    SELECT MAX(id)
    FROM [enter image description here][1]fundrecord
    GROUP BY memberId)
    )

如果您仍然面临同样的问题,那么您的子查询将返回多个值

【讨论】:

以上是关于SQL查询更多时间执行并最终出错[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

pl sql查询需要更多时间来执行

我可以使用 Azure Functions 进行 SQL 查询并返回其结果吗? [关闭]

SQL 查询在 WHERE CLAUSE 中执行更多记录

sql查询语句并不是最先执行SELECT

第八章 关于SQL查询出错的一些问题

Java SQL 语句关闭