SELECT UserName,RealName,Phone,Address,NumId,Name,Mode,Re,Time,
IssueId = (select IssueId from C_AuctionInfo where C_AuctionInfo.NumId = C_AuctionShop.NumId) 
FROM C_AuctionShop where NumId = 12345子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。红色这句应该怎么改,先说声谢谢!

解决方案 »

  1.   

    SELECT UserName,RealName,Phone,Address,NumId,Name,Mode,Re,Time,
    IssueId = (select min(IssueId) from C_AuctionInfo where C_AuctionInfo.NumId = C_AuctionShop.NumId) 
    FROM C_AuctionShop where NumId = 12345
      

  2.   

    SELECT UserName,RealName,Phone,Address,NumId,Name,Mode,Re,Time,
    IssueId = (select top 1 IssueId from C_AuctionInfo where C_AuctionInfo.NumId = C_AuctionShop.NumId) 
    FROM C_AuctionShop where NumId = 12345
      

  3.   

    SELECT UserName,RealName,Phone,Address,NumId,Name,Mode,Re,Time,
    IssueId in (select IssueId from C_AuctionInfo where C_AuctionInfo.NumId = C_AuctionShop.NumId) 
    FROM C_AuctionShop where NumId = 12345
      

  4.   


    --括号内返回的IssueId不止一个
    --加个top / max / min... 试试!
      

  5.   

    这个和具体业务有关吧·你可以使用in,或者取最大,最小IssueId`总之,=于只能=于一个·不能=于多个·
      

  6.   

    in是错误的。
    消息 156,级别 15,状态 1,第 2 行
    关键字 'in' 附近有语法错误。
    消息 156,级别 15,状态 1,第 3 行
    关键字 'FROM' 附近有语法错误。
    IssueId这个我要取出多个的。。不是要1个所以不能用top 1min和max是可以取出来,但是有问题,取出来的值不是最小就是最大值,这个不是我要的,我要原始数据库中的值,,
      

  7.   

    SELECT UserName,RealName,Phone,Address,NumId,Name,Mode,Re,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
      

  8.   

    回9楼的朋友:有错误消息 245,级别 16,状态 1,第 1 行
    在将 varchar 值 ',' 转换成数据类型 int 时失败。
      

  9.   

    SELECT UserName,RealName,Phone,Address,NumId,Name,Mode,Re,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
      

  10.   


    IssueId取出来的值为是1.2.2,能不能是对应的,不是循环的,比如说是第一行是1,第二行是2,第三行是2
      

  11.   

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

  12.   

    最后还是自己解决了。
    虽然麻烦了点,但是好歹做出来了!
    共享下答案:SELECT S.UserName,RealName,S.Phone,S.Address,S.NumId,[Name],Mode,Re,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在这谢谢各位!