首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

一道 SQL难题^

2012-02-22 
求助一道 SQL难题^^^^^^^^^^^^^^^^^^^A表CatalogIDCatalogNameParentCatalogID--------------------------

求助一道 SQL难题^^^^^^^^^^^^^^^^^^^
A表
CatalogID       CatalogName                                                                           ParentCatalogID
-----------   ----------------------------------------------   ---------------
10                     可领用资产                                                                                       0
11                     电子类设备                                                                                       10
12                     办公家具                                                                                           10
13                     办公一体化                                                                                       10
14                     笔记本                                                                                                 11
15                     台式机                                                                                                 11
16                     服务器                                                                                                 11
17                     办公桌                                                                                                 12


18                     办公纸                                                                                                 12
19                     办公一体化设备                                                                                 13
22                     rrr                                                                                                         0
23                     444                                                                                                         11
24                     555                                                                                                         14

B表
DeviceID         CatalogID       DeviceName                                     DeviceDesc
-----------   -----------   ---------------------------   -------------
8                       14                     IBM笔记本                                         配制一般,没得说了
9                       14                     海尔笔记本                                       配制一般,没得说了
10                     15                     IBM台式机                                         配制一般,没得说了
11                     16                     IBM服务器                                         配制一般,没得说了


12                     17                     IBM办公桌                                         配制一般,没得说了


想要的结果是:(由CatalogID   =   14   的条件得到的,具体说是由A表中的CatalogID=14找到A到对应的ParentCatalogID=14   记录   并与B表中的CatalogID=14   的记录联合在一起)

名称(CatalogName)         配置信息(DeviceDesc)
555                                       null
IBM笔记本                           配制一般,没得说了
海尔笔记本                         配制一般,没得说了



[解决办法]
SELECT CatalogID,CatalogName FROM A WHERE ParentCatalogID=14
UNION ALL
SELECT DeviceName,DeviceDesc FROM B WHERE CatalogID=14
[解决办法]
SELECT BB.CatalogName DeviceName,NULL AS DeviceDesc FROM A AA INNER JOIN A BB ON BB.ParentCatalogID=AA.CatalogID WHERE AA.CatalogID =14
UNION ALL
SELECT DeviceName,DeviceDesc FROM B WHERE CatalogID=14

热点排行