sql问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(online)

HHH3000 2003-11-19 06:03:41
比如说,有一张表里面有三个字段,
一个是主键id,第二个是公司的name,第三个是上级公司id,
如果一个公司没有上级公司,那么上级公司id为“-1”,
否则为上级公司在该表中的id,
记录如下:
主id 公司name 上级公司id
1 aaa -1
2 bbb 1
3 ccc 1
4 ddd 2
这个表说明aaa是一家没有上级公司的单位,而bbb和ccc的上级公司是aaa公司,
同时ddd的上级公司是bbb公司。说明完毕.
先求一句sql语句,
比如说我要查找公司ddd的name,同时还要查出它的上级公司bbb的name,
希望高手指点!!!!!!急!!!!
...全文
21 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
eru 2003-11-19
  • 打赏
  • 举报
回复
假设你的表名为t1

select a.*,b.公司name from t1 a left outer join t1 b on(a.上级公司id=b.主id)
where a.主id=2

查出的是bbb的记录,其他的你改改where后的条件就ok了
HHH3000 2003-11-19
  • 打赏
  • 举报
回复
感谢小马哥的积极帮助!
特此加分!以示感谢!!!
yoki 2003-11-19
  • 打赏
  • 举报
回复
create table company(主id int,公司name varchar(20),上级公司id int)
insert into company select 1, 'aaa', -1
insert into company select 2, 'bbb', 1
insert into company select 3, 'ccc', 1
insert into company select 4, 'ddd', 2

go

create proc DirTree (@name varchar(20))
as
declare @result varchar(1000)
declare @ int
select @=主id from company where 公司name=''+ @name +''
set @result=''
while exists (select 1 from company where 主id= @ )
begin
select @result=@result+公司name+' | ' ,@=上级公司id
from company
where 主id=@
end
select @result as 公司name
go

exec DirTree 'ddd'
go
select * from company
go
drop table company
drop proc dirtree
HHH3000 2003-11-19
  • 打赏
  • 举报
回复
拜托各位大虾能不能按我的例子写出这个sql语句!!!!
先谢谢了!!!!!
pengdali 2003-11-19
  • 打赏
  • 举报
回复
/*--按父找子--*/
declare @a table (TC_Id int,TC_PID int,TC_Name varchar(200))
insert @a values(1,0,'中国')
insert @a values(2,0,'美国')
insert @a values(3,0,'加拿大')
insert @a values(4,1,'北京')
insert @a values(5,1,'上海')
insert @a values(6,1,'江苏')
insert @a values(7,6,'苏州')
insert @a values(8,7,'常熟')
insert @a values(9,6,'南京')
insert @a values(10,6,'无锡')
insert @a values(11,2,'纽约')
insert @a values(12,2,'旧金山')

declare @tmp1 table (TC_Id int,TC_PID int,TC_Name varchar(200),lev int)
insert @tmp1 select *,1 from @a where tc_ID=1
while @@rowcount>0
insert @tmp1 select a.*,1 from @a a,@tmp1 b where a.tc_pid=b.tc_ID and a.tc_ID not in (select tc_ID from @tmp1)
select * from @tmp1
txlicenhe 2003-11-19
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2285/2285830.xml?temp=.1570551

/*--树形数据处理方案

树形数据的排序,新增,修改,复制,删除,数据完整性检查,汇总统计
--邹建 2003.9--*/

34,497

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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