一个子查询问题!

c099633 2011-01-06 10:27:47
SELECT UserName,RealName,Phone,Address,NumId,Name,Mode,Remark,Time,
IssueId = (select IssueId from C_AuctionInfo where C_AuctionInfo.NumId = C_AuctionShop.NumId)
FROM C_AuctionShop where NumId = 12345

子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。

红色这句应该怎么改,先说声谢谢!
...全文
112 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
c099633 2011-01-06
  • 打赏
  • 举报
回复
最后还是自己解决了。
虽然麻烦了点,但是好歹做出来了!
共享下答案:

SELECT S.UserName,RealName,S.Phone,S.Address,S.NumId,[Name],Mode,Remark,S.[Time],I.IssueId
FROM C_AuctionShop AS S, (SELECT I.NumId, U.UserName, I.IssueId FROM C_AuctionInfo AS I LEFT JOIN C_User AS U ON U.UserId = I.UserId ) AS I
where S.NumId = 12345 AND S.UserName = I.UserName

在这谢谢各位!
c099633 2011-01-06
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 dlut_liuq 的回复:]
引用 13 楼 c099633 的回复:
我要的显示效果每行对应的显示,不是每行都是1.2.2的结果。
不过还是要先谢谢你,让我学到了东西。
希望你还有其他的解决办法!

用连接
SQL code
SELECT * FROM C_AuctionShop JOIN C_AuctionInfo ON C_AuctionInfo.NumId = C_AuctionShop.NumId

……
[/Quote]

能说具体点嘛?
飘零一叶 2011-01-06
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 c099633 的回复:]
我要的显示效果每行对应的显示,不是每行都是1.2.2的结果。
不过还是要先谢谢你,让我学到了东西。
希望你还有其他的解决办法!
[/Quote]
用连接
SELECT * FROM C_AuctionShop JOIN C_AuctionInfo ON C_AuctionInfo.NumId = C_AuctionShop.NumId
c099633 2011-01-06
  • 打赏
  • 举报
回复
我要的显示效果每行对应的显示,不是每行都是1.2.2的结果。
不过还是要先谢谢你,让我学到了东西。
希望你还有其他的解决办法!
c099633 2011-01-06
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dlut_liuq 的回复:]
引用 10 楼 c099633 的回复:
回9楼的朋友:有错误

消息 245,级别 16,状态 1,第 1 行
在将 varchar 值 ',' 转换成数据类型 int 时失败。
SQL code
SELECT UserName,RealName,Phone,Address,NumId,Name,Mode,Remark,Time,
stuff((select ','+ltrim(I……
[/Quote]

IssueId取出来的值为是1.2.2,能不能是对应的,不是循环的,比如说是第一行是1,第二行是2,第三行是2
飘零一叶 2011-01-06
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 c099633 的回复:]
回9楼的朋友:有错误

消息 245,级别 16,状态 1,第 1 行
在将 varchar 值 ',' 转换成数据类型 int 时失败。
[/Quote]
SELECT UserName,RealName,Phone,Address,NumId,Name,Mode,Remark,Time,
stuff((select ','+ltrim(IssueId) from C_AuctionInfo where C_AuctionInfo.NumId = C_AuctionShop.NumId for xml path('')) ,1,1,'')
--IssueId以逗号分隔
FROM C_AuctionShop where NumId = 12345
c099633 2011-01-06
  • 打赏
  • 举报
回复
回9楼的朋友:有错误

消息 245,级别 16,状态 1,第 1 行
在将 varchar 值 ',' 转换成数据类型 int 时失败。
飘零一叶 2011-01-06
  • 打赏
  • 举报
回复
SELECT UserName,RealName,Phone,Address,NumId,Name,Mode,Remark,Time,
stuff((select ','+IssueId from C_AuctionInfo where C_AuctionInfo.NumId = C_AuctionShop.NumId for xml path('')) ,1,1,'')
--IssueId以逗号分隔
FROM C_AuctionShop where NumId = 12345
c099633 2011-01-06
  • 打赏
  • 举报
回复
希望各位大大帮忙下,等待正确答案,已有正确答案就结贴!
c099633 2011-01-06
  • 打赏
  • 举报
回复
in是错误的。
消息 156,级别 15,状态 1,第 2 行
关键字 'in' 附近有语法错误。
消息 156,级别 15,状态 1,第 3 行
关键字 'FROM' 附近有语法错误。


IssueId这个我要取出多个的。。不是要1个所以不能用top 1

min和max是可以取出来,但是有问题,取出来的值不是最小就是最大值,这个不是我要的,我要原始数据库中的值,,
jornye 2011-01-06
  • 打赏
  • 举报
回复
这个和具体业务有关吧·你可以使用in,或者取最大,最小IssueId`总之,=于只能=于一个·不能=于多个·
zhang_winnie 2011-01-06
  • 打赏
  • 举报
回复
沒明白
AcHerat 元老 2011-01-06
  • 打赏
  • 举报
回复

--括号内返回的IssueId不止一个
--加个top / max / min... 试试!
飘零一叶 2011-01-06
  • 打赏
  • 举报
回复
SELECT UserName,RealName,Phone,Address,NumId,Name,Mode,Remark,Time,
IssueId in (select IssueId from C_AuctionInfo where C_AuctionInfo.NumId = C_AuctionShop.NumId)
FROM C_AuctionShop where NumId = 12345
youngzi 2011-01-06
  • 打赏
  • 举报
回复
SELECT UserName,RealName,Phone,Address,NumId,Name,Mode,Remark,Time,
IssueId = (select top 1 IssueId from C_AuctionInfo where C_AuctionInfo.NumId = C_AuctionShop.NumId)
FROM C_AuctionShop where NumId = 12345
sql_bd 2011-01-06
  • 打赏
  • 举报
回复
SELECT UserName,RealName,Phone,Address,NumId,Name,Mode,Remark,Time,
IssueId = (select min(IssueId) from C_AuctionInfo where C_AuctionInfo.NumId = C_AuctionShop.NumId)
FROM C_AuctionShop where NumId = 12345

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧