[发明专利]一种连接查询方法及装置有效
申请号: | 201310192991.3 | 申请日: | 2013-05-22 |
公开(公告)号: | CN104182405B | 公开(公告)日: | 2017-05-24 |
发明(设计)人: | 熊水林 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京集佳知识产权代理有限公司11227 | 代理人: | 王宝筠 |
地址: | 英属开曼群岛大开曼*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 连接 查询 方法 装置 | ||
技术领域
本发明涉及数据库查询领域,特别涉及一种连接查询方法及装置。
背景技术
在关系型数据库应用中,使用连接查询指令进行查询,可以将有关联的多张表中,关联字段的字段值相同的行连接起来,合并为一个结果输出。由于连接查询指令的一次查询是针对多张表进行的,如果其中一张或多张表的数据量比较多时,查询的速度会非常慢。
为了解决这一问题,有些方案提出将连接查询分为多个子查询,以降低一次查询的数据量,提高查询速度。由于返回的子查询结果为表结构,特定含义的字段值被放在由特定含义的字段名统领的列中,对子查询结果中属于关联字段的字段值的操作,需要通过对关联字段所在列的操作实现,因此,为了便于将多个子查询结果中关联字段的字段值进行比较,这些方案对子查询结果的格式有特定要求,要求各个子查询结果中的关联字段的字段值被调整在固定列,通过对这些子查询的结果的固定列中的字段值进行比较,将固定列中字段值相同的行记录合并,实现获得连接查询的结果的目的。
可见,由于这些方案对子查询结果存在特定格式要求,需要根据固定列中的字段值进行比较及合并,导致方案的扩展性较差。
发明内容
有鉴于此,本发明的主要目的在于提供一种连接查询方法及装置以实现在对子查询结果进行比较及合并时无特定格式要求,进而提高方案的扩展性的目的。
在本发明实施例的一个方面,提供了一种连接查询方法,该方法包括:
为至少两个子查询结果的每个行记录中的字段值,建立与字段名的映射关系,获得与所述至少两个子查询结果相应的至少两个行记录集合;
获取所述至少两个行记录集合分别对应的关联字段名;
针对所述至少两个行记录集合中的每个行记录,分别根据行记录所在行记录集合对应的关联字段名有映射关系的字段值,生成行记录的属性值;
对所述至少两个行记录集合进行比较,判断是否有属性值相等的行记录;
如果有属性值相等的行记录,将属性值相等的行记录拼接为一行记录,加入合并行记录集合;
如果还有属性值相等的行记录,返回到将属性值相等的行记录拼接为一行记录的步骤;
如果没有,返回获得的合并行记录集合。
在本发明实施例的另一个方面,提供了一种连接查询装置,该装置包括:
子查询单元:用于为至少两个子查询结果的每个行记录中的字段值,建立与字段名的映射关系,获得与所述至少两个子查询结果相应的至少两个行记录集合;
获取关联字段单元:用于获取所述至少两个行记录集合分别对应的关联字段名;
属性生成单元:用于针对所述至少两个行记录集合中的每个行记录,分别根据行记录所在行记录集合对应的关联字段名有映射关系的字段值,生成行记录的属性值;
比较单元:用于对所述至少两个行记录集合进行比较,判断是否有属性值相等的行记录;
合并单元:用于如果有属性值相等的行记录,将属性值相等的行记录拼接为一行记录,加入合并行记录集合,判断是否还有属性值相等的行记录,如果有,触发合并单元重新执行,如果没有,触发返回单元执行;
返回单元:用于返回获得的合并行记录集合。
可见本发明具有如下有益效果:
在本发明中,由于为至少两个子查询结果的每个行记录中的字段值均建立了与字段名的映射关系,因此,所获得的与至少两个子查询结果相应的至少两个行记录集合中的每个行记录都是字段值与字段名有映射关系的独立的记录,不存在固定的数据结构,为了能够对两个行记录集合进行连接,又获取指定的每个行记录集合各自对应的关联字段名,针对每个行记录集合中的每个行记录,分别根据行记录所在行记录集合对应的关联字段名有映射关系的字段值,即关联字段的字段值,生成每个行记录的属性值,因此,在进行比较及合并时,不存在特定格式要求,对于每个行记录来说,如果与关联字段名有映射关系的字段值相同,则行记录的属性值也相同,可以直接根据与关联字段名有映射关系的字段值所确定的行记录的属性值,对至少两个行记录集合中的行记录进行比较,将属性值相等的行记录进行连接,而且,所返回的合并行记录集合中的行记录,同样均为字段值与字段名有映射关系的独立记录,可以按照实际需要灵活指定最终合并行记录集合输出的格式,具有较强的扩展性。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310192991.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:节点元数据获取方法与装置
- 下一篇:一种数据传输方法、装置及移动终端