获取博客文章标题和博客名称的最佳方式

时间:2012-10-18 02:42:01

标签: sql sql-server sql-server-2008

说我有2张桌子:

Blog      BlogPosts
BlogId    BlogPostId
Name      BlogId
          Title

当我检索记录时,我想要CSV格式的BlogPosts。我为此创建了一个用户定义的函数,并将BlogId作为参数传递。还有比这更好的方法吗?在用户定义的函数中进行DB请求通常可以成为性能杀手。你有其他建议吗?

1 个答案:

答案 0 :(得分:3)

试试这个:

select B.Name,
       (
         select ', '+BP.Title
         from BlogPosts as BP
         where B.BlogId = BP.BlogId
         for xml path(''), type
       ).value('substring((./text())[1], 3)', 'varchar(max)') as BlogPosts
from Blog as B

SQL Fiddle