Rod*_*odM 6 postgresql ruby-on-rails-3.2
我想执行一些这样的查询:
SELECT
folders.*,
(SELECT
files.filename
FROM
files
WHERE
files.folder_id = folders.id
)
as files
FROM
folders
ORDER BY
files[column name of filename]
Run Code Online (Sandbox Code Playgroud)
子查询可能会给出多于1个结果,因此我想将结果加入到单个列文件名中.
我正在使用Postgres.我添加了Rails作为标记,因为你可能会建议一些可以处理这个问题的Rails魔法.
a_h*_*ame 19
这将创建一个逗号分隔的文件夹中所有文件的列表:
select folders.*,
(SELECT string_agg(files.filename, ',')
FROM files
WHERE files.folder_id = folders.id) as files
from folders
Run Code Online (Sandbox Code Playgroud)
如果您需要在逗号分隔列表中对文件名进行排序,则可以在较新的Postgres版本中使用订单:
select folders.*,
(SELECT string_agg(files.filename, ',' order by files.filename)
FROM files
WHERE files.folder_id = folders.id) as files
from folders
Run Code Online (Sandbox Code Playgroud)
我不确定我是否理解"并在ORDER BY中使用它"的要求.如果该列包含多个文件,您如何期望总结果的正确顺序?您需要向我们展示一些示例输出(基于一些示例数据).
归档时间: |
|
查看次数: |
5663 次 |
最近记录: |