【问题标题】:SQL Concat Values from second table into one columnSQL 将第二个表中的值合并为一列
【发布时间】:2012-02-29 11:51:49
【问题描述】:

我有两个 SQL 表

Entries(entryid,name,date)

条目文件(fileid、entryid、文件名、添加日期)

我正在尝试编写一个存储过程来返回条目中的所有内容,并为每一行返回该条目的文件的串联列表。

从阅读堆栈溢出到这里

SELECT *,
        (
            SELECT f.FileName + ','
            FROM EntryFiles f 
            WHERE f.entryid = e.entryid
            FOR XML PATH('')
            ) AS Files
FROM Entries e

我得到了包含文件的行的重复行,我知道我做了一些非常愚蠢的事情,但有一个脑死的时刻。 干杯

例如我得到

entryid 名称日期文件

1 个条目1 01/01/2012 NULL

2 entry2 01/02/2012 file1, file2,

2 entry2 01/02/2012 file1, file2,

【问题讨论】:

  • 我觉得不错。请添加一些显示您遇到的问题的示例数据。
  • 例如我获取entryid名称日期文件1 entry1 01/01/2012 NULL 2 entry2 01/02/2012 file1, file2, 2 entry2 01/02/2012 file1, file2,
  • 您在表Entries 中有重复的entryid 吗?你所拥有的一切都很好。看看这里:data.stackexchange.com/stackoverflow/query/62758/new

标签: sql stored-procedures


【解决方案1】:

使用不同的关键字...希望这会帮助你..

【讨论】:

    【解决方案2】:

    试试这个希望你能得到解决方案

    SELECT *,
            (
                SELECT f.FileName 
                FROM EntryFiles f 
                WHERE f.entryid = e.entryid
                FOR XML PATH('')
                ) AS Files
    FROM Entries e
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      • 2013-05-05
      • 1970-01-01
      相关资源
      最近更新 更多