sql 问题请指教

liangling221 2008-03-17 04:09:08
id mc  fid   sslb status
1 冬季保暖内衣   7  1 1
2 保暖毛衣      7  1 1
3 羊毛衫 8  1 1
4 黑色风衣      8  1 1
5 纯羊毛围巾 9  1 1
6 纯羊毛手套 9  1 1
7 分类一 NULL    1 1
8 分类二 NULL  1 1
9 分类三 NULL  1 1
这个表的id 与fid是对应的我想查出mc=分类一,分类二,分类三怎么查?
我在显示的时候要实现这样的功能:
羊毛衫 8 代购分类 修 改 删 除
黑色风衣 8 代购分类 修 改 删 除
我不能显示8我要显示8 对应的mc分类二
...全文
66 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
JiangHongTao 2008-03-17
  • 打赏
  • 举报
回复
select a.mc,isnull(b.mc,'') lb,'代购分类' fl,'修 改' xg,'删 除' sc from 表 a left join 表 b  on a.pid = b.id
dawugui 2008-03-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 liangling221 的帖子:]
id mc  fid   sslb status
1 冬季保暖内衣   7  1 1
2 保暖毛衣      7  1 1
3 羊毛衫 8  1 1
4 黑色风衣      8  1 1
5 纯羊毛围巾 9  1 1
6 纯羊毛手套 9  1 1
7 分类一 NULL    1 1
8 分类二 NULL  1 1
9 分类三 NULL  1 1
这个表的id 与fid是对应的我想查出mc=分类一,分类二,分类三怎么查?
我在显示的时候…
[/Quote]
结果是什么?
hlq8210 2008-03-17
  • 打赏
  • 举报
回复
没有看明白
liangCK 2008-03-17
  • 打赏
  • 举报
回复
--测试数据
CREATE TABLE tb(ID char(3),PID char(3),Name nvarchar(10))
INSERT tb SELECT '001',NULL ,'山东省'
UNION ALL SELECT '002','001','烟台市'
UNION ALL SELECT '004','002','招远市'
UNION ALL SELECT '003','001','青岛市'
UNION ALL SELECT '005',NULL ,'四会市'
UNION ALL SELECT '006','005','清远市'
UNION ALL SELECT '007','006','小分市'
GO

--查询指定节点及其所有子节点的函数
CREATE FUNCTION f_Cid(@ID char(3))
RETURNS @t_Level TABLE(ID char(3),Level int)
AS
BEGIN
DECLARE @Level int
SET @Level=1
INSERT @t_Level SELECT @ID,@Level
WHILE @@ROWCOUNT>0
BEGIN
SET @Level=@Level+1
INSERT @t_Level SELECT a.ID,@Level
FROM tb a,@t_Level b
WHERE a.PID=b.ID
AND b.Level=@Level-1
END
RETURN
END
GO

--调用函数查询002及其所有子节点
SELECT a.*
FROM tb a,f_Cid('002') b
WHERE a.ID=b.ID
/*--结果
ID PID Name
------ ------- ----------
002 001 烟台市
004 002 招远市
--*/
newqq 2008-03-17
  • 打赏
  • 举报
回复
isnull(mc,0)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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