怎么解决-sql Subquery returns more than 1 row

问题描述

sql Subquery returns more than 1 row

SELECT
GUID,
DOCUMENTNAME,
ID,
INVITEDNAME,
USERGUID,
USERTYPE,
INVITEDGUID,
INVITETYPE,
RIGUID,
COLLEGE,
MAJORY,
CLASS,
ISFAVORITE,
ISRECOMMEND,
PUSHTYPE
FROM
(
SELECT
D.GUID,
D.DOCUMENTNAME,
RI.ID,
U.USERNAME INVITEDNAME,
u.guid userguid,
RI.INVITEDGUID,
RI.INVITETYPE,
RI.GUID RIGUID,
(
SELECT
customName
FROM
customcategorytab cc
INNER JOIN accountcategorymaptab acm ON cc.guid = acm.CUSTOMCATEGORYGUID
WHERE
type = 1
AND cc.ORGANIZATIONGUID = '821ACE1605DE402F806FD0FA26C2CFE7'
AND acm.USERACCOUNTGUID = u.guid
) college,
(
SELECT
customName
FROM
customcategorytab cc
INNER JOIN accountcategorymaptab acm ON cc.guid = acm.CUSTOMCATEGORYGUID
WHERE
type = 2
AND cc.ORGANIZATIONGUID = '821ACE1605DE402F806FD0FA26C2CFE7'
AND acm.USERACCOUNTGUID = u.guid
) majory,
(
SELECT
departname
FROM
departmenttab dt
INNER JOIN accountcategorymaptab acm ON dt.guid = acm.CUSTOMCATEGORYGUID
WHERE
type = 3
AND dt.ORGANIZATIONGUID = '821ACE1605DE402F806FD0FA26C2CFE7'
AND acm.USERACCOUNTGUID = u.guid
) class,
(
SELECT
paramtitle
FROM
systemparamtab sp
INNER JOIN useraccounttab ua ON sp.PARAMNAME = ua.USERTYPE
WHERE
sp.PARENTID = 321
AND ua.guid = '669A4A1BA01546559F27727B338EAD19'
AND ua.ORGANIZATIONGUID = '821ACE1605DE402F806FD0FA26C2CFE7'
) usertype,
CASE
WHEN f.guid IS NULL THEN
0
ELSE
1
END isFavorite,
CASE
WHEN r.guid IS NULL THEN
0
ELSE
1
END isRecommend,
o.pushType
FROM
documenttab D
RIGHT JOIN recommendinvitetab ri ON D.guid = ri.resourceguid
LEFT JOIN organizationresourcetab o ON o.resourceguid = D.GUID
LEFT JOIN useraccounttab U ON ri.userguid = U.guid
LEFT JOIN useraccounttab U1 ON ri.invitedguid = U1.guid
LEFT JOIN (
SELECT
*
FROM
favoritetab
WHERE
favoritetype = 1
AND ORGANIZATIONGUID = '821ACE1605DE402F806FD0FA26C2CFE7'
) f ON d.guid = f.resourceguid
LEFT JOIN recommendtab r ON d.guid = r.resourceguid
WHERE
1 = 1
AND ri.invitetype <> 3
AND ri.invitedguid = '669A4A1BA01546559F27727B338EAD19'
GROUP BY
invitedname,
d.DOCUMENTNAME
ORDER BY
ri.INVITETIME DESC
) invite

解决方案

 RI.GUID RIGUID,
(
SELECT
customName
FROM
customcategorytab cc
INNER JOIN accountcategorymaptab acm ON cc.guid = acm.CUSTOMCATEGORYGUID
WHERE
type = 1
AND cc.ORGANIZATIONGUID = '821ACE1605DE402F806FD0FA26C2CFE7'
AND acm.USERACCOUNTGUID = u.guid
) college

类似这种select子句当字段的,查询结果有多条,不是一条。
看业务需要,是数据问题还是重复,如果要容错,可以只取第一条记录的方式来解决。

解决方案二:

子查询,必须返回唯一数据,不能返回多个数据行

解决方案三:

加上一个top 1或者max之类的,在你的子查询上。

解决方案四:

This error occurs for statements where the subquery must return at most one row but returns multiple rows.

时间: 2024-10-18 01:32:28

怎么解决-sql Subquery returns more than 1 row的相关文章

mysql-报Subquery returns more than 1 row求解决,紧急,紧急!!!

问题描述 报Subquery returns more than 1 row求解决,紧急,紧急!!! SELECT * FROM mr_user_info u,mr_visit_info f, ( SELECT CASE WHEN v.RELATION_TYPE = 2 THEN ( select io.VISIT_ID from mr_visit_info io,mr_item_info_fb aa where io.RELATION_ID = aa.ITEM_ID and aa.ORG_ID

如何解决 SQL Server 2000 中的连接问题

server|解决|问题 如何解决 SQL Server 2000 中的连接问题适用于 重要说明:本文包含有关修改注册表的信息.修改注册表之前,一定要备份注册表,并且一定要知道在发生问题时如何还原注册表.有关如何备份.还原和编辑注册表的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 256986 Microsoft Windows 注册表说明 本任务的内容概要 解决连接问题 验证 DNS 设置 验证启用的协议和别名 验证 SQL Server 实例正在正确地侦听 解

用PHP函数解决SQL injection

函数|解决 SQL injection问题在ASP上可是闹得沸沸扬扬当然还有不少国内外著名的PHP程序"遇难".至于SQL injection的详情,网上的文章太多了,在此就不作介绍.如果你网站空间的php.ini文件里的magic_quotes_gpc设成了off,那么PHP就不会在敏感字符前加上反斜杠(\),由于表单提交的内容可能含有敏感字符,如单引号('),就导致了SQL injection的漏洞.在这种情况下,我们可以用addslashes()来解决问题,它会自动在敏感字符前

解决SQL Server2000提示挂起的办法

解决SQL Server2000提示挂起的办法: 1:在开始菜单中点击运行,输入 regedit ,打开注册表. 2:展开 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager 单击FileRenameOperations键,删除右侧界面中出现的PendingFileRenameOperations键值 3:重新安装 SQL Server. 原理: PendingFileRenameOperations 记录安装过

求大神帮忙解决SQL server的字符串截取问题

问题描述 求大神帮忙解决SQL server的字符串截取问题 用 SQL 语句实现 系统有福田.南山.罗湖三个校区,编号分别为 FT.NS.LH:有缴费.退费.结转.转让4种操作类型,每个操作对应的编号分别为 JF.TF.JZ.ZR.(刚说不让用中文,怎么又来拼音首字 母了,) 需求,用户进行缴费.退费.结转.转让操作时,需要根据校区.操作类型.操作日期生成相应的编号,编号生成规则:1.校区编号 + 操作类型编号 + yyyyMMdd + '-' + '***'2.yyyyMMdd:代表日期格式

sql server-编程时,是如何解决 SQL SERVER 主键约束导致的问题的?

问题描述 编程时,是如何解决 SQL SERVER 主键约束导致的问题的? 我在做项目的时候遇到这样的问题. 数据库设置了两张表,一张是主键表,另一张是外键表. 问题就来了,如果我在主键表中删除一行记录,由于外键表存在相应的记录, 数据库就会拒绝执行这条 DELETE 查询. DELETE 语句与 REFERENCE 约束"FK_ipaddress_serverlib"冲突.该冲突发生于数据库"XiangLongDatabase",表"dbo.ipaddr

spt datatype info- 如何解决sql server2008下提示master.dbo.spt_datatype_info不存在的问题?

问题描述 如何解决sql server2008下提示master.dbo.spt_datatype_info不存在的问题? USE DB_AA GO SET ANSI_NULLS, QUOTED_IDENTIFIER ON GO CREATE PROCEDURE dbo.[GetFldInfo] WITH ENCRYPTION AS Begin SELECT Cast(Upper(Obj.name) As Varchar(28)) As TABLE_NAME, Cast(Col.name As

MySQL解决SQL注入的另类方法详解_Mysql

本文实例讲述了MySQL解决SQL注入的另类方法.分享给大家供大家参考,具体如下: 问题解读 我觉得,这个问题每年带来的成本可以高达数十亿美元了.本文就来谈谈,假定我们有如下 SQL 模板语句: select * from T where f1 = '{value1}' and f2 = {value2} 现在我们需要根据用户输入值填充该语句: value1=hello value2=5 我们得到了下面的 SQL 语句,我们再提交给数据库: select * from T where f1='h

解决SQL Server虚拟内存不足情况_MsSql

解决SQL Server虚拟内存不足情况 症状 在具有 2 GB 或更多 RAM 的计算机上,除了 256 MB (SQL Server 7.0) 或 384 MB (SQL Server 2000) 虚拟地址空间之外,SQL Server 在启动过程中保留剩下的所有虚拟地址空间以供缓冲池使用.另外,为了存储数据和过程缓存,SQL Server 使用缓冲池内存为来自 SQL Server 进程的大多数小于 8 KB 的其他内存请求提供服务.剩下的未保留内存准备用于不能从缓冲池得到服务的其他分配.