有如下的数据库表table1
tid tup name
1 0 土木工程
2 0 管理类
4 0 计算机类
5 1 路桥
6 4 网页
7 1 测量
8 4 数据库
9 2 工商管理
10 2 工程管理
这是做为我新闻分类的表,tid表示类的id,tup表示上一级类的id,如果是0表示是一级目录.
如何用sql输出下面的样子.
可以用asp/aspx等程序语言控制
土木工程
--路桥 测量
管理类
--工商管理 工程管理
计算机类
--网页 数据库
还有就是
获得了id=5的参数
如何用一句sql
输出 土木工程 路桥
tid tup name
1 0 土木工程
2 0 管理类
4 0 计算机类
5 1 路桥
6 4 网页
7 1 测量
8 4 数据库
9 2 工商管理
10 2 工程管理
这是做为我新闻分类的表,tid表示类的id,tup表示上一级类的id,如果是0表示是一级目录.
如何用sql输出下面的样子.
可以用asp/aspx等程序语言控制
土木工程
--路桥 测量
管理类
--工商管理 工程管理
计算机类
--网页 数据库
还有就是
获得了id=5的参数
如何用一句sql
输出 土木工程 路桥
晕。才开始学MYSQL,积极性都被打击了
create table table1(tid int,tup int,name varchar(10))
goinsert into table1
select 1,0,'土木工程' union
select 2,0,'管理类' union
select 4,0,'计算机类' union
select 5,1,'路桥' union
select 6,4,'网页' union
select 7,1,'测量' union
select 8,4,'数据库' union
select 9,2,'工商管理' union
select 10,2,'工程管理'
go
create function fn_join(@id int)
returns varchar(30)
begin
declare @sql varchar(30)
set @sql=''
select @sql=@sql+name+',' from table1 where tup=@id
return stuff(@sql,len(@sql),1,'')
end
goselect name 大类,dbo.fn_join(tid) 小类
from table1
where tup=0
go
drop function fn_join
drop table table1
MYSQL好象不支持子查询
union select tname from list where tid in(SELECT tup from list WHERE tid=5);
delimiter ;;
create procedure mu(in s INT ,IN e INT)
begin
while s <=e do
SELECT tname from list where tid = s
union select tname from list where tUP= s;
set s=s+1;
end while;
end
;;
delimiter ;