记一次SQL xml字段关联查询

时间:2014-10-20 13:02:39   收藏:0   阅读:302

需求:

      一张表是APP表,结构如下:

  bubuko.com,布布扣

      app_category为该游戏所属的类别ID,xml字段类型

      另一张表是类别表,就ID对应名称,这就不上图了。

      还有一张表是每个游戏的下载记录,结构如下:

  bubuko.com,布布扣

     DownLogs_APPId为对应的游戏

     那么需求来了,要查询游戏的下载记录,查询字段中要有游戏的所属类别名称,多个用逗号分隔

     查询结果应如下:

     bubuko.com,布布扣

最终的执行语句如下:

select  APP_Id,APP_Name,LEFT(App_Category,len(App_Category)-1) as App_Category,DownLogs_IMEI,DownLogs_AddTime from (
select APP_Id,APP_Name,(
        select Category_Title+, from tbl_Category where Category_Id in(select T.C.value(.,nvarchar(5)) as ss from tbl_APP as app cross apply app.APP_Category.nodes(/id) as T(C)  where app_id=tbl_DownLogs.APP_Id) for xml path(‘‘)) as App_Category,
        DownLogs_IMEI,DownLogs_AddTime from (
    select APP_Id,APP_Name,APP_Category,DownLogs_IMEI,DownLogs_AddTime from tbl_APP right join tbl_Download_Logs on tbl_APP.APP_Id= tbl_Download_Logs.DownLogs_APPId
  ) as tbl_DownLogs
) as T

下面一步步分解

No.1

       

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!