读书人

sql存储过程的小疑点-查询两个表

发布时间: 2012-03-20 14:01:10 作者: rapoo

sql存储过程的小问题-查询两个表
建一个存储过程,同时查询两个表的内容。
我是这样写的:
、、、、、、、、、、、、、、、、、、、、、、

CREATE PROCEDURE rm
@Catego varchar(50),
@OrderID varchar(50)

as

select 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=@Catego

order by id desc
GO
、、、、、、、、、、、、、、、、、、、、、
提示有错误:
查询返回的值多于一个。当子查询跟随在 =、!=、 <、 <=、> 、> = 之后,或子查询用作表达式时,这种情况是不允许的。

我的表category里面符合left(orderid,12)= '001011011001 '这个条件的有7个记录。
我想同时读取category表符合left(orderid,12)= '001011011001 '的字段category的值,同时读取category表符合OrderID = @Catego的字段idname的值,同时还读取info表的一些字段的值,这个存储过程应该怎么写???

[解决办法]
CREATE PROCEDURE rm
@Catego varchar(50),
@OrderID varchar(50)

as

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
GO

[解决办法]
select a.ID,a.Title,a.aa,a.FuTitle,b.name as cate,b.idname as OrderID

from Info a,category b where a.aa=@Catego and left(b.orderid,12)= '001011011001 '

and b.OrderID=@Catego

order by id desc

读书人网 >SQL Server

热点推荐