产品分类表,大类名称和小类名称放在同一张表里目的:在或许小类名称的同时获取相对应的大类名称如:
ID 大类名 小类名
1 电子及家电类 电子电气产品求SQL语句如何写
表名Calling 如下:
ID layer DlId Name
1 2 3 电子电气产品
2 2 3 电子消费品
3 1 0 电子及家电类select id,(select name from calling where calling=Calling.Dl)as DlName,Name from [Calling]问题就出在红色部分,请教应该如何写才能正确获取。谢谢!
ID 大类名 小类名
1 电子及家电类 电子电气产品求SQL语句如何写
表名Calling 如下:
ID layer DlId Name
1 2 3 电子电气产品
2 2 3 电子消费品
3 1 0 电子及家电类select id,(select name from calling where calling=Calling.Dl)as DlName,Name from [Calling]问题就出在红色部分,请教应该如何写才能正确获取。谢谢!
解决方案 »
- 怎样统计以下数据字段
- select like使用问题
- 怎么把1.38886e+010这个样子的数据变过来啊?晕4了
- SQL述语,请帮忙解释!
- 大家帮我看下完成这样的功能怎么写SQL语句
- SQL中拼接字符串为什么要转换为数值
- 请教:邮件服务器是exchange server,sqlserver2005的database mail该如何设置啊?
- 程序中的 "" 和 SQL Server中的 '' 以及Null的疑问
- 没分了,请教如何提高数据库的执行效率?
- MCDBA现在最新的考试价格为多少,一两年内还会不会变?这个证书用途大不大?
- 刚刚发布了一个复制,虽然实现了效果,但是不能查看一些东西
- 表关联更新问题,多字段如何处理??
If object_id('Calling') is not null
Drop table Calling
Go
Create table Calling(ID int,layer int,DlId int,Name varchar(16))
Go
Insert into Calling
select 1,2,3,'电子电气产品' union all
select 2,2,3,'电子消费品' union all
select 3,1,0,'电子及家电类'
Go
--Start
select id,(select top 1 name from calling where a.DlId=id)as DlName,Name from [Calling] a--Result:
/*
id DlName Name
----------- ---------------- ----------------
1 电子及家电类 电子电气产品
2 电子及家电类 电子消费品
3 NULL 电子及家电类(所影响的行数为 3 行)*/
--End
如果大类名,小类名在一个表(A)里可以关联查询
select id ,a.大类名,name from clalling join a on a.小类名=calling.name
select d.id, DlName=p.name, d.Name
from calling d
join calling p on p.id=d.dlid