建一个存储过程,同时查询两个表的内容。
我是这样写的:
、、、、、、、、、、、、、、、、、、、、、、CREATE PROCEDURE rm
@Catego varchar(50),
@OrderID varchar(50)asselect ID,Title,aa,FuTitle,cate=(select name from category where left(orderid,12)='001011011001'),OrderID=(select idname from Category where OrderID = @Catego) from Info where aa=@Categoorder by id desc
GO
、、、、、、、、、、、、、、、、、、、、、
提示有错误:
查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。我的表category里面符合left(orderid,12)='001011011001'这个条件的有7个记录。
我想同时读取category表符合left(orderid,12)='001011011001'的字段category的值,同时读取category表符合OrderID = @Catego的字段idname的值,同时还读取info表的一些字段的值,这个存储过程应该怎么写???

解决方案 »

  1.   

    select a.ID,a.Title,a.aa,a.FuTitle,b.name, b.OrderID
    from Info a join category on a.OrderID = b.OrderID
    where aa=@Catego and left(b.orderid,12)='001011011001 and b.OrderID = @Catego
    order by a.id desc
      

  2.   

    select a.ID,a.Title,a.aa,a.FuTitle,b.name, b.OrderID
    from Info a join category on a.OrderID = b.OrderID
    where a.aa=@Catego and left(b.orderid,12)='001011011001 and b.OrderID = @Catego
    order by a.id desc
      

  3.   

    wei123456(onedotone) 提示b有错误呀。
      

  4.   

    select A.ID,A.Title,A.aa,A.FuTitle,B.name, B.OrderID
    from Info A left join category B on A.OrderID = B.OrderID
    where A.aa=@Catego and left(B.orderid,12)='001011011001 and B.OrderID = @Catego
    order by A.id desc这样应该可以了
      

  5.   

    按照楼上的方法可以,但和我的要求还有一点点差异。A,B,C,E,F,G,H,在表category。
    TITLE1,TITLE2~~~是在Info表。我要显示的效果是:
    A
    TITLE1,TITLE2
    B
    TITLE3,TITLE4,
    C
    TITLE5,TITLE5
    ~~~~~~
    ~~~~等等楼上的效果是:
    A TITLE1,A TITLE2
    B TITLE3,B TITLE4,
    C TITLE5,C TITLE5
    ~~~~~~
    ~~~~等等另外,我在html是这样写的:
    <asp:datalist id="dl" runat="server">
    <ItemTemplate><%# DataBinder.Eval(Container.DataItem,"cate")%>
    <%# DataBinder.Eval(Container.DataItem,"title")%></ItemTemplate>
    </asp:datalist>
      

  6.   

    你的子查询返回了多条记录,在原来的基础上改动一下
    select ID,Title,aa,FuTitle,
    cate=(select top 1 name from category where left(orderid,12)='001011011001'),
    OrderID=(select top 1 idname from Category where OrderID = @Catego) 
    from Info where aa=@Catego
    order by id desc
    不过这个结果不一定是你所想的正确结果,你还是要把两个表的关系贴出来,看有没有其它的办法