我在自己写个小论坛,要求实现以下查询:表bbs中所有boardid=2的记录数(count(id)),
表bbsboard中boardid=2的boardmaster列
表bbsSetup中rid=139的pagesize列请问如果用SQL语句怎么查询?或者是存储过程也可以,
我看到那些cross,left join之类的就眼花,高手帮帮忙~
表bbsboard中boardid=2的boardmaster列
表bbsSetup中rid=139的pagesize列请问如果用SQL语句怎么查询?或者是存储过程也可以,
我看到那些cross,left join之类的就眼花,高手帮帮忙~
select (count(id)) from bbs where boardid=2
select boardmaster from bbsboard where boardid=2
select pagesize from bbssetup where rid=139楼主要把他们的结果放到一个表里?
如果数据不一样多,你打算怎么处理?
表bbsboard中boardid=2的boardmaster列
表bbsSetup中rid=139的pagesize列 --select count(1) from bbs where boardid = 2select boardmaster from bbsboard where boardid = 2select pagesize from bbssetup where rid = 139
select cast(count(*) as varchar) from bbs
union all
select cast(boardmaster as varchar) from bbsboard
union all
select cast(pagesize as varchar) from bbsSetup where rid=139
select cast(count(*) as varchar) from bbs where boardid=2
union all
select cast(boardmaster as varchar) from bbsboard where boardid=2
union all
select cast(pagesize as varchar) from bbsSetup where rid=139
select (count(id)),(select boardmaster from bbsboard where boardid=2) as boardmaster,(select pagesize from bbssetup where rid=139
)as pagesize from bbs where boardid=2不过这样写,虽然是执行一次,但MS也是查询了三次啊,不知道我理解的对不对
select
(select count(*) from bbs where boardid=2),
(select boardmaster from bbsboard where boardid=2),
(select pagesize as from bbsSetup where rid=139)
(select count(*) from bbs where boardid=2),
(select boardmaster from bbsboard where boardid=2),
(select pagesize from bbsSetup where rid=139)
提取结果的时候也麻烦,因为有可能有很多列的值为NULL.
可以做一个存储过程
create procedure proc (@flag int)
as
begin
-----用@flag区分一下。
if @flag =1
执行第一个查询,
if @flag =2
执行第二个查询,
。
end
好象和我的方法差不多?只能这样吗?
能不能整些join啊,on啊之类的,看起来技术含量比较高,哈哈~~