【问题标题】:SQL JOIN GROUP BY two matches?SQL JOIN GROUP BY 两个匹配?
【发布时间】:2011-12-08 12:44:26
【问题描述】:

我不是 SQL 专家,所以请原谅这个基本问题。我有一张歌曲表和一张艺术家表。我想把歌曲还给他们的艺术家,有些歌曲有不止一位艺术家。我需要将每首歌曲作为一行返回,因为我会将其绑定到 gridview 控件 asp.net。我知道我可以加入我已经完成的表格,但是如何每首歌曲返回 1 行并且两位艺术家在同一行中?

【问题讨论】:

  • 你能发布你的表结构吗?另外,我假设它是 SQL Server?
  • 哪种 SQL 方言? MySQL、SQL 服务器?
  • 您将如何展示艺术家? gridview 中的单列?

标签: sql join group-by


【解决方案1】:

如果您使用 SQL 服务器,这里的答案似乎正是您所需要的: Getting a list of text concatenated in a group by

【讨论】:

    【解决方案2】:

    当您编写普通查询时,艺术家会出现在不同的行中。我想您想将行转换为列,例如 Song Artist1 Artist2 Artist3

    为此,您可以使用 PIVOT 和 UNPIVOT 运算符。请参阅此问题Rows to Columns

    【讨论】:

    • -1,必须等待 RDBMS 品牌。 2 位用户已要求提供此信息。此外,如果您有解决方案,请不要只写一个链接。
    • @danihp ..如果你能看到 OP 没有回答几个问题。而且 OP 提供的信息很难找到解决方案。而且这个问题似乎非常重复,所以只是指向到链接更有帮助。
    • Luke 之前在 SQLServer 上提出过一个问题,因此假设他正在使用它可能是合理的。
    • @AshleyJohn,OP 只有 21R 而你是 815。你应该教用户提出格式正确的问题。如果问题是配音,那么您应该在问题评论中告知这一点。如您所知,您可以使用 mini-Markdown 格式在 cmets 中包含链接。 (点击“添加评论”按钮下的帮助了解。
    • @AshleyJohn,是的,约翰要求这个。如果 AshleyJohn 完成答案,我将删除否决票(如果未修改答案,系统也会阻止这样做)。真的,我不赞成反对票。
    猜你喜欢
    • 2013-03-12
    • 2014-08-31
    • 2016-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    相关资源
    最近更新 更多