关于组合SQL查询。如下情况要如何组合查询来获得我要的数据内容?

hzesen1222 2010-07-05 06:51:11
有一个表叫做 catagories , 它有三个字段 id, name, sub
另一个表叫做 articles, 它有三个字段 id, title, catagories

在catagories里面,有一级的目录和二级的目录 一级目录的sub是0, 二级目录的sub是它的一级目录的id。现在情况如下:
---------------------------------------
catagories:

id name sub
1 欧洲 0
2 亚洲 0
3 中国 2
4 日本 2
5 韩国 2
6 英国 1

在articles里面,catagories就是该篇文章所属的分类的id。
----------------------------------------
articles:

id title catagories
1 大阪之旅 4
2 首尔之旅 5
3 东京旅 4
4 走遍亚洲 2
5 走遍欧洲 1
-----------------------------------------

现在我想显示出的内容是所有的关于亚洲的文章 不是简单的查询articles中的 where catagories=2 ,而是把catagories中的sub等于2的全找到,然后再在articles中查寻where catagories=2 or .. or .. or .. 也就是读取“亚洲”目录下的文章信息,和“亚洲”下所有二级目录的所有文章。。 谢谢了!
...全文
84 点赞 收藏 5
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pt1314917 2010-07-05
[Quote=引用 4 楼 hzesen1222 的回复:]
谢谢各位了 第一位的代码之获得了子目录的列表 “亚洲”目录下的并没有获取到, 不过加个 or catagories=2 就解决了。。 第二位的读取不出啥东西来。。 第三位的代码我不知道咋用 我借贴了 方便的话能发个信息告知么谢谢了! 我把页面改成了javascript后还是用不了。。
[/Quote]
先在数据库中创建p_wsp存储过程。
直接调用存储过程p_wsp就可以啦
回复
hzesen1222 2010-07-05
谢谢各位了 第一位的代码之获得了子目录的列表 “亚洲”目录下的并没有获取到, 不过加个 or catagories=2 就解决了。。 第二位的读取不出啥东西来。。 第三位的代码我不知道咋用 我借贴了 方便的话能发个信息告知么谢谢了! 我把页面改成了javascript后还是用不了。。
回复
pt1314917 2010-07-05
--> 测试数据: catagories
if object_id('catagories') is not null drop table catagories
create table catagories (id int,name varchar(4),sub int)
insert into catagories
select 1,'欧洲',0 union all
select 2,'亚洲',0 union all
select 3,'中国',2 union all
select 4,'日本',2 union all
select 5,'韩国',2 union all
select 6,'英国',1
--> 测试数据: articles
if object_id('articles') is not null drop table articles
create table articles (id int,title varchar(8),catagories int)
insert into articles
select 1,'大阪之旅',4 union all
select 2,'首尔之旅',5 union all
select 3,'东京旅',4 union all
select 4,'走遍亚洲',2 union all
select 5,'走遍欧洲',1
go


create proc p_wsp
as
with wsp
as
(
select * from catagories where id=2
union all
select a.* from catagories a,wsp b where a.sub=b.id
)
select b.* from wsp a,articles b where a.id=b.catagories
go

exec p_wsp
--结果:
id title catagories
----------- -------- -----------
1 大阪之旅 4
2 首尔之旅 5
3 东京旅 4
4 走遍亚洲 2
回复
lzp4881 2010-07-05
SELECT a.id,a.title,b.name FROM [articles] a
join [catagories] b on a.catagories=b.id
WHERE a.catagories IN (SELECT ID FROM catagories WHERE SUB=2)
回复
sy_binbin 2010-07-05
SELECT * FROM articles WHERE catagories IN (SELECT ID FROM catagories WHERE SUB= 2)
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告