数据库难题!
现有两表 stubase,字段为stu_id(int)[学号],ind_id(varchar)[欲从事行业,可多项,用逗号分开,对应industry表的ind_id,如:01,02,18];industry,字段为ind_id(int),ind_text(varchar)。现欲在网页上进行查询,返回如下结果:
学号 欲从事专业
------------------------------------------
9990324 计算机,法律
而不是
学号 欲从事专业
------------------------------------------
9990324 01,12
请问如何实现?
问题点数:20、回复次数:7Top
1 楼llonely(寂寞)回复于 2001-05-23 22:03:00 得分 0
Select a.stu_id b.ind_text from stubase a,industry b where a.ind_id=b.ind_idTop
2 楼superct(圣堂·天子)回复于 2001-05-23 22:06:00 得分 0
这样不行,stubase中的ind_id是varcharTop
3 楼llonely(寂寞)回复于 2001-05-23 22:15:00 得分 0
Select a.stu_id b.ind_text from stubase a,industry b where a.ind_id=str(b.ind_id)Top
4 楼llonely(寂寞)回复于 2001-05-23 22:16:00 得分 0
或者
Select a.stu_id b.ind_text from stubase a,industry b where alltrim(a.ind_id)=alltrim(str(b.ind_id))Top
5 楼suntear(伤心雨)回复于 2001-05-23 23:14:00 得分 0
select studbase.stu_id "学号",industry.ind_text "欲从事专业" from studbase,
industry where studbase.int_id=industry.ind_idTop
6 楼wangshine(wangshine)回复于 2001-05-24 16:17:00 得分 20
比较麻烦,我给你一种仅仅在asp网页上实现的方法,下面为源码:
<table>
<tr>
<td>学号</td>
<td>欲从事专业</td>
</tr>
<% sqlstr1="select * from stubase"
set rs1=server.createobject("adodb.recordset")
rs1.open sqlstr,"你的连接",1,3
rs1.movefirst
for i=0 to rs1.recordcount-1%>
<tr>
<td><%=rs1("stu_id")%></td>
<% b=split(trim(rs1("ind_id")),",")
dim indtext
indtext=""
for each h in b
sqlstr2="select * from industry where ind_id='"+h+"'"
set rs2=server.createobject("adodb.recordset")
rs2.open sqlstr2,"你的连接",1,3
if indtext="" then
indtext=trim(rs2("ind_text"))
else
indtext=indtext+","+trim(rs2("ind_text"))
end if
rs2.close
set rs2=nothing
next%>
<td><%=indtext%></td>
</tr>
<%rs1.movenext%>
<%next%>
</table>
<%rs1.close
set rs1=nothing%>
这样保存为asp网页,就可以得到一张带表格的网页,第一列名为学号,第二列名为欲从事专业。
不只有哪位高手还有其他办法。Top
7 楼superct(圣堂·天子)回复于 2001-09-15 22:52:59 得分 0
To:wangshine(wangshine)谢谢你的回答,我都忘了这个帖子,最近才发现还没给分,再次感谢,给分!Top




