循环难题

要什么呢称 2005-10-14 10:30:12
有三个表 1个记录分类信息 1个记录 产品信息 1个记录文章信息
表一
class_id class_name class_sel
1 表1 1
2 表2 2

表二
pro_id pro_info pro_class
1 产品1 1
2 产品2 1
3 产品3 2
4 产品4 2
表三
art_id art_info art_class art_sel
1 文章1 1 1
2 文章2 1 2
3 文章3 1 3
4 文章4 1 3
5 文章5 1 1
6 文章6 1 2
7 文章7 2 2
8 文章8 2 1
9 文章9 2 3
10 文章10 2 2
11 文章11 2 3
12 文章12 2 1

现在可以用
要根据以上表 显示
表1
——————————————————————————————
1栏目文章 2栏目文章 3栏目文章 产品
文章1 文章2 文章3 产品1
文章5 文章6 文章4 产品2

表2
——————————————————————————————
1栏目文章 2栏目文章 3栏目文章 产品
文章8 文章7 文章9 产品3
文章12 文章10 文章11 产品4


sql怎么写啊 实在想不到 asp部分又要怎么样啊 冥想了3个小时就是没想出来啊
...全文
226 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
要什么呢称 2005-10-17
  • 打赏
  • 举报
回复
算了 本来想用数组储存后在计算 但想了下太麻烦了 计算好多东西 最后决定 用fso生成htm文件 以节能
要什么呢称 2005-10-17
  • 打赏
  • 举报
回复
3个表 表1是分类 表2是产品 表3是文章
intereye 2005-10-15
  • 打赏
  • 举报
回复
楼主的意思说得不太明白~~~惭愧,没看懂什么意思。
lonaerd 2005-10-15
  • 打赏
  • 举报
回复
就是把表中的记录类型当做字段来处理,
类似:
user_id subject score
Tom 语文 60
Tom 数学 80
Jeer 语文 90
Jeer 英语 100
Jeer 物理 100

而要显示的结果则是:
userid 语文 数学 英语 物理

tom 60 80 0 0
JEER 80 0 100 100



不知道楼主是否要这样的效果?
dh20156 2005-10-15
  • 打赏
  • 举报
回复
TRY:
SELECT ta.class_sel,tb.pro_info,tc.*
FROM [表一] ta left outer join [表二] tb on ta.class_sel=tb.pro_class left outer join (
SELECT *
FROM (SELECT art_class AS pidA, art_info AS art_infoA
FROM [表三]
WHERE art_sel = 1) a FULL OUTER JOIN
(SELECT art_class AS pidB, art_info AS art_infoB
FROM [表三]
WHERE art_sel = 2) b ON a.pidA = b.pidB FULL OUTER JOIN
(SELECT art_class AS pidC, art_info AS art_infoC
FROM [表三]
WHERE art_sel = 3) c ON a.pidA = c.pidC) tc on ta.class_sel=tc.pidA OR ta.class_sel=tc.pidB OR ta.class_sel=tc.pidC
xutao888 2005-10-15
  • 打赏
  • 举报
回复
select A.*,D.* from TB3 A inner join (select B.*,C.* from TB2 B inner join TB1 C on B.pro_class = C.class_id) D on A.art_class = D.class_id

不知道行不行
要什么呢称 2005-10-15
  • 打赏
  • 举报
回复
表一 记录的就是总的分类信息
表二 记录的是产品信息 其中 pro_class的数值就是相对应的表一class_sel
表三 记录的事文章信息 其中 art_class的数值就是相对应的表一class_sel
其中art_sel字段记录的为文章栏目的信息123分别是3个栏目

zy51(Final)的我没试不过看应该能实现 不过 这样的话如果我有很多个分类 就要循环class_id*pro_id*art_id 次
这样就没有效率了
八哥 2005-10-15
  • 打赏
  • 举报
回复
请告诉三个表的关联, 就是记录相同对象的列
zy51 2005-10-15
  • 打赏
  • 举报
回复
不知道楼主的意思是不是这样:
Set rs=conn.execute("select * from 表一 order by class_id)
do while not rs.eof
response.write rs("class_name")&"<br>"
Set rs1=conn.execute("select * from 表三 where art_class="&rs("class_id")&" order by art_id ")
Response.Write rs1("art_info")
rs1.movenext
rs.movenext
loop

你的意思我没完全看明白,不过大体可以如此.

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧