TSQL - 从一个表到另一个表与单行组合

时间:2013-06-18 13:53:58

标签: sql sql-server tsql

我有三张桌子,如下所述。

tblNews

NewsId | Title       |
======================
1      | Hello World |

tblSectionItems

rID  | SectionID | NewsID     |
=================================
 1   |   1       | 1          |
 2   |   2       | 1          |

tblSections

SectionId | SectionName | 
===================================
1         | Economy     |
2         | Politics    |

我将如何进行并输出单个查询,如下所示?甚至更好我如何使用Linq-EF?

| NewsID | Title        | SectionNames
=====================================
| 1      | Hello World  | Economy, Politics   |

到目前为止,我一直在尝试使用JOINS,而JOINS又输出类似

的内容
| NewsID | Title        | SectionNames
=====================================
| 1      | Hello World  | Economy   |
| 1      | Hello World  | Politics  |

这不是理想的输出。

对文章或教程的任何帮助或指导都将不胜感激。感谢..

1 个答案:

答案 0 :(得分:0)

这样的东西
select
 NewsID,
 Title,
 STUFF((SELECT ', '+ s.SectionName
  FROM tblSectionItems si
  inner join tblSections s on s.SectionId=si.SectionId
  WHERE si.NewsID= n.NewsID
  For XML PATH('')
 ),1,2,'') as IDs
FROM tblNews n