首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >SQL -将外部表中的所有值连接在主表中使用

SQL -将外部表中的所有值连接在主表中使用
EN

Stack Overflow用户
提问于 2009-07-14 09:58:26
回答 2查看 105关注 0票数 0

我有一个表包含销售记录,另一个表包含每个记录的附加详细信息。我需要做的是构建一个查询第一个表的查询,并为每个记录在一个虚拟列中列出额外的详细信息,如下所示:“记录1的额外详细信息# 1 :一些额外的详细信息;记录1的额外详细信息#2 :更多额外的详细信息;...”基本上,此列是所有附加字段记录值的串联。

对于主表中的一条记录可以具有的附加详细信息(附加详细信息表中的记录)数量没有限制。

你对如何做到这一点有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-07-14 10:02:50

MySQL

代码语言:javascript
代码运行次数:0
运行
复制
SELECT  s.*,
        GROUP_CONCAT(detail)
FROM    sales s
JOIN    details d
ON      d.sale_id = s.id
GROUP BY
        s.id

SQL Server

代码语言:javascript
代码运行次数:0
运行
复制
SELECT  s.*,
        (
        SELECT  CASE WHEN ROW_NUMBER() OVER (ORDER BY sale_id) = 1 THEN ', ' ELSE '' END + detail
        FROM    details d
        WHERE   d.sale_id = s.id
        FOR XML PATH('')
        )
FROM    sales s

PostgreSQL

代码语言:javascript
代码运行次数:0
运行
复制
SELECT  s.*,
        ARRAY_TO_STRING (
        ARRAY
        (
        SELECT  detail
        FROM    details d
        WHERE   d.sale_id = s.id
        ), ', ')
        )
FROM    sales s

Oracle

代码语言:javascript
代码运行次数:0
运行
复制
WITH q AS (
        SELECT  d.sale_id, d.detail,
                ROW_NUMBER() OVER (PARTITION BY d.sale_id ORDER BY d.detail) AS rn
        FROM    sales s
        JOIN    details d
        ON      d.sale_id = s.id
        )
SELECT  *
FROM    (
        SELECT  *
        FROM    q
        MODEL
        PARTITION BY
                (sale_id)
        DIMENSION BY
                (rn)
        MEASURES
                (detail, detail AS group_concat, 0 AS mark)
        RULES UPDATE (
                group_concat[rn > 1] =  group_concat[CV() - 1] || ', ' || detail[CV()],
                mark[ANY] = PRESENTV(mark[CV() + 1], 0, 1)
                )
        )
WHERE   mark = 1
ORDER BY
        id
票数 0
EN

Stack Overflow用户

发布于 2009-07-14 10:01:57

对于SQL Server2005和更高版本,您可以使用此method

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1124468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档