两个表里数组字段的映射关联

编辑
文档创建者:zsh331 (73316 )     浏览次数:1172次     编辑次数:4次     最近更新:zsh331 于 2017-11-03     

目录:

A、需求描述。编辑

有时,在新建数据集过程中,可能会遇到这样的需求:将2个表进行数组字段的映射关联,形成一个最终表。一般情况下,可以直接通过表与表之间通过JOIN关联实现,但如果某个字段以数组存在时,JOIN方法就不好处理了。

如图:表1、表2
222

实现效果:

222

B、解决方案。编辑

  1、在MYSQL数据库中通过group_concat()函数与find_in_set()函数结合实现。

  2、在Sql Server数据库中通过stuff()函数与charindex()函数结合实现。


C、示例(一)编辑

在Mysql中实现,SQLl脚本如下:

select a.*, group_concat(lesson) as LESSONNAME from t2 a, t1 b where find_in_set(b.id, lessonid) group by name

222

注:Mysql版本:5.5.28

D、示例(二)编辑

在Sql Server中实现,SQLl脚本如下:

;with tb as ( select a.*, lesson as lessonname from t2 a, t1 b where charindex(','+b.id+',',','+lessonid+',')>0 ) select id,name,lessonid, [val]=stuff( (select ',' +[lessonname] from tb as kb where kb.id = ka.id for xml path('')),1,1,'') from tb as ka group by id,name,lessonid

222
注:上述实现方案仅供参考,实际情况可再此基础上进一步延伸。

        Sql Server版本及运行环境:Microsoft SQL Server 2012 - 11.0.2100.60 (X64)  Feb 10 2012 19:39:15  Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)

附件列表


主题: 专题总结
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,请咨询帆软技术支持
关于技术问题,您还可以通过帆软论坛获取帮助,论坛上有非常多的大神,有些水平比帆软工程师还要高哦。
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

此页面有帮助吗?