CN117609303A - 多表联合查询方法、装置、设备及存储介质 - Google Patents
多表联合查询方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117609303A CN117609303A CN202311611555.5A CN202311611555A CN117609303A CN 117609303 A CN117609303 A CN 117609303A CN 202311611555 A CN202311611555 A CN 202311611555A CN 117609303 A CN117609303 A CN 117609303A
- Authority
- CN
- China
- Prior art keywords
- query
- data tables
- data
- nodes
- acyclic graph
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 92
- 238000004458 analytical method Methods 0.000 claims abstract description 23
- 238000001914 filtration Methods 0.000 claims description 16
- 230000009286 beneficial effect Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 238000012546 transfer Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 101100328884 Caenorhabditis elegans sqt-3 gene Proteins 0.000 description 1
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
Abstract
本说明书一个或多个实施例提供一种多表联合查询方法、装置、设备及存储介质。方法包括:获取用于进行多表联合查询的查询语句并进行解析;根据解析得到的为多个数据表中的至少一个数据表指定的查询条件和多个数据表中的各个数据表对应的查询方法,从多个数据表中确定与其他数据表不存在查询依赖关系的可查询数据表;将多个数据表作为节点,并按照解析得到的多个数据表之间的联合查询类型构建多个节点之间的有向边,以生成有向无环图;根据可查询数据表,确定有向无环图中的节点对应的数据表的查询顺序;按照有向无环图中的节点对应的数据表的查询顺序生成查询语句的逻辑执行计划,并利用逻辑执行计划进行数据查询。有利于提高查询准确性和效率。
Description
技术领域
本说明书一个或多个实施例涉及数据库处理技术领域,尤其涉及一种多表联合查询方法、装置、电子设备及计算机可读存储介质。
背景技术
数据库的多表联合查询是指在数据库中使用多个表进行联合查询,以获取更丰富的信息。这种查询通常涉及将多个表中的数据进行连接,以便根据特定的条件检索出符合需求的数据集。
在数据源查询受限场景下,通常由开发者提前设计好针对多表联合查询的查询语句的逻辑执行计划。其中,执行计划可以理解为实现数据查询所需要执行的数据库操作指令序列。逻辑执行计划可以理解为由逻辑操作构成的执行计划,主要描述实现数据查询要执行的内容。对于一些复杂的查询场景,这种设计方式会为开发工作带来更繁琐的工作内容,也存在一定的错误风险。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种多表联合查询方法、装置、电子设备及计算机可读存储介质。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种多表联合查询方法,包括:
获取用于进行多表联合查询的查询语句,并对所述查询语句进行解析,得到解析结果;其中,所述解析结果包括待查询的多个数据表、为所述多个数据表中的至少一个数据表指定的查询条件、所述多个数据表之间的联合查询类型;所述多个数据表中的各个数据表对应有查询方法,所述查询方法支持使用数据表的至少部分字段进行过滤查询;
根据针对所述多个数据表中的至少一个数据表指定的查询条件和所述多个数据表中的各个数据表对应的查询方法,从所述多个数据表中确定与其他数据表不存在查询依赖关系的可查询数据表;
将所述多个数据表作为节点,并按照所述多个数据表之间的联合查询类型构建多个节点之间的有向边,以生成有向无环图;所述有向无环图中的任意两个节点之间的有向边用于表征所述任意两个节点对应的数据表之间的查询依赖关系;
根据所述可查询数据表,确定所述有向无环图中的节点对应的数据表的查询顺序;
按照所述有向无环图中的节点对应的数据表的查询顺序生成所述查询语句的逻辑执行计划,并利用所述逻辑执行计划进行数据查询。
在一种实现方式中,所述可查询数据表对应有查询条件和查询方法、且所述可查询数据表的查询条件指向的字段为所述可查询数据表的查询方法支持的能够进行过滤查询的字段。
在一种实现方式中,所述按照所述多个数据表之间的联合查询类型构建多个节点之间的有向边,包括:
根据所述多个数据表之间的联合查询类型确定所述多个数据表中的依赖方和被依赖方,并构建从所述被依赖方对应的节点指向所述依赖方对应的节点的有向边。
在一种实现方式中,所述查询语句包括用于确定所述联合查询类型的关键字;
所述根据所述多个数据表之间的联合查询类型确定所述多个数据表中的依赖方和被依赖方,包括:
将在所述查询语句中位于所述关键字前方的数据表确定为左表,以及将位于所述关键字后方的数据表确定为右表;
若所述联合查询类型为内连接或左连接,将所述左表确定为被依赖方以及将所述右表确定为依赖方;
若所述联合查询类型为右连接,将所述左表确定为依赖方以及将所述右表确定为被依赖方;
若所述联合查询类型为全连接,确定所述左表和所述右表之间不存在查询依赖关系。
在一种实现方式中,在所述按照所述有向无环图中的多个节点的查询顺序生成所述查询语句的逻辑执行计划之前,还包括:
判断所述有向无环图中的每个节点是否均有所述查询顺序指示的查询标识;
若是,执行生成所述查询语句的逻辑执行计划的操作;
若否,输出所述查询语句不可执行的提示信息。
在一种实现方式中,所述根据所述可查询数据表,确定所述有向无环图中的节点对应的数据表的查询顺序,包括:
确定所述可查询数据表的数量;
在所述可查询数据表有多个的情况下,确定多个可查询数据表分别对应的查询代价;各个可查询数据表的查询代价用于表征针对于该可查询数据表进行查询所需的查询资源的成本;
按照所述多个可查询数据表分别对应的查询代价从小到大的顺序,确定所述多个可查询数据表的查询顺序;
从各个所述可查询数据表对应的节点开始,按照所述有向无环图中的有向边,确定所述有向无环图中的其他节点对应的数据表相对于所述可查询数据表的查询顺序;
根据所述多个可查询数据表的查询顺序、以及所述有向无环图中的其他节点对应的数据表相对于所述可查询数据表的查询顺序,确定所述有向无环图中的节点对应的数据表的查询顺序。
在一种实现方式中,所述解析结果还包括:在对所述多个数据表进行多表联合查询时,对所述多个数据表中的至少两个数据表进行集合运算的运算类型;
在所述生成有向无环图之后,还包括:
将所述集合运算的运算类型指向的至少两个数据表对应的节点进行合并,生成包含合并节点的有向无环图。
在一种实现方式中,所述合并节点对应的至少两个数据表具有相同的查询状态;所述查询状态为可查询或不可查询。
在一种实现方式中,所述查询语句包括用于确定所述集合运算的运算类型的关键字;所述集合运算的运算类型包括并集、交集以及差集中的至少一种。
根据本说明书一个或多个实施例的第二方面,提出了一种多表联合查询装置,包括:
语句解析模块,用于获取用于进行多表联合查询的查询语句,并对所述查询语句进行解析,得到解析结果;其中,所述解析结果包括待查询的多个数据表、为所述多个数据表中的至少一个数据表指定的查询条件、所述多个数据表之间的联合查询类型;所述多个数据表中的各个数据表对应有查询方法,所述查询方法支持使用数据表的至少部分字段进行过滤查询;
可查询数据表确定模块,用于根据针对所述多个数据表中的至少一个数据表指定的查询条件和所述多个数据表中的各个数据表对应的查询方法,从所述多个数据表中确定与其他数据表不存在查询依赖关系的可查询数据表;
有向无环图生成模块,用于将所述多个数据表作为节点,并按照所述多个数据表之间的联合查询类型构建多个节点之间的有向边,以生成有向无环图;所述有向无环图中的任意两个节点之间的有向边用于表征所述任意两个节点对应的数据表之间的查询依赖关系;
查询顺序确定模块,用于根据所述可查询数据表,确定所述有向无环图中的节点对应的数据表的查询顺序;
数据查询模块,用于按照所述有向无环图中的节点对应的数据表的查询顺序生成所述查询语句的逻辑执行计划,并利用所述逻辑执行计划进行数据查询。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器执行所述可执行指令时,用于实现第一方面所述的方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述方法的步骤。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开实施例中,能够将用于进行多表联合查询的查询语句进行自动解析得到解析结果,基于解析结果中的为数据表指定的查询条件和数据表的查询方法,从参与多表联合查询的多个数据表中确定与其他数据表不存在查询依赖关系的可查询数据表;以及将多个数据表作为节点,按照解析结果中的多个数据表之间的联合查询类型构建多个节点之间的有向边,以生成有向无环图,进而可以根据可查询数据表确定有向无环图中的节点对应的数据表的查询顺序;其中,多个数据表之间的联合查询类型反映了各个数据表之间的查询依赖关系,上述的确定数据表的查询顺序的方式可以避免不必要的重复查询和数据冗余情况,提高查询效率,减少数据查询时间。接着按照有向无环图中的节点对应的数据表的查询顺序自动生成查询语句的逻辑执行计划,并利用逻辑执行计划进行数据查询,可以确保查询按照正确的顺序执行,避免数据表之间的查询依赖问题,保证查询结果的准确性和完整性。
通过解析查询语句、确定数据表的查询顺序,并构建有向无环图,可以自动化生成查询语句的逻辑执行计划,减少了开发人员手动设计执行计划的繁琐工作,提高了开发效率,也能够减少人为错误的可能性,避免了手动设计执行计划过程中可能出现的逻辑错误,提高了查询的准确性和稳定性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
图1是一示例性实施例提供的一种应用场景的示意图。
图2是一示例性实施例提供的一种多表联合查询的流程示意图。
图3是一示例性实施例提供的第一种多表联合查询的数据传递示意图。
图4是一示例性实施例提供的第二种多表联合查询的数据传递示意图。
图5是一示例性实施例提供的另一种多表联合查询的流程示意图。
图6是一示例性实施例提供的第三种多表联合查询的数据传递示意图。
图7是一示例性实施例提供的第四种多表联合查询的数据传递示意图。
图8是一示例性实施例提供的又一种多表联合查询的流程示意图。
图9是一示例性实施例提供的一种电子设备的结构示意图。
图10是一示例性实施例提供的一种多表联合查询装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
在数据源查询受限场景下的进行多表联合查询中,各个数据表的查询之间可能存在依赖关系,比如从A数据表中查询到的数据需要作为B数据表的查询条件的入参,也就是说B数据表依赖于A数据表。当一次联合查询中的多个表存在依赖关系时,查询的先后顺序尤为重要。
目前,在数据源查询受限场景下,通常由开发者提前设计好针对多表联合查询的查询语句的逻辑执行计划。其中,执行计划可以理解为实现数据查询所需要执行的数据库操作指令序列。逻辑执行计划可以理解为由逻辑操作构成的执行计划,主要描述实现数据查询要执行的内容。对于一些复杂的查询场景,这种设计方式会为开发工作带来更繁琐的工作内容,也存在一定的错误风险。
基于此,本说明书实施例提供了一种多表联合查询方法,能够将用于进行多表联合查询的查询语句进行自动解析得到解析结果,基于解析结果中的为数据表指定的查询条件和数据表的查询方法,从参与多表联合查询的多个数据表中确定与其他数据表不存在查询依赖关系的可查询数据表;以及将多个数据表作为节点,按照解析结果中的多个数据表之间的联合查询类型构建多个节点之间的有向边,以生成有向无环图,进而可以根据可查询数据表确定有向无环图中的节点对应的数据表的查询顺序;其中,多个数据表之间的联合查询类型反映了各个数据表之间的查询依赖关系,根据查询依赖关系构建有向无环图,进而确定数据表的查询顺序,可以避免不必要的重复查询和数据冗余情况,提高查询效率,减少数据查询时间。接着按照有向无环图中的节点对应的数据表的查询顺序自动生成查询语句的逻辑执行计划,并利用逻辑执行计划进行数据查询,可以确保查询按照正确的顺序执行,避免数据表之间的查询依赖问题,保证查询结果的准确性和完整性。
通过解析查询语句、确定数据表的查询顺序,并构建有向无环图,可以自动化生成查询语句的逻辑执行计划,减少了开发人员手动设计执行计划的繁琐工作,提高了开发效率,也能够减少人为错误的可能性,避免了手动设计执行计划过程中可能出现的逻辑错误,提高了查询的准确性和稳定性。
图1是本说明书实施例可以应用于其中的一个应用场景的示意图。在图1所示的应用场景中,可以包括用户A使用的用户设备101,数据库服务器102,以及数据库服务器102中包括的数据表table1、table2、table3。其中,table1、table2、table3均包括多个字段。如图1中所示,table1可以包括字段col1_1、col1_2、col1_3,table2可以包括字段col2_1、col2_2、col2_3,table3可以包括字段col3_1、col3_2、col3_3、col3_4。需要说明,图1中示出的“##”可以表示字段值。
table1、table2、table3均支持查询方法,该查询方法支持使用数据表的至少部分字段进行过滤查询。
比如table1的查询方法:支持对字段col1_1进行过滤查询,其查询效果可以等价于SQL(StructuredQueryLanguage,结构化查询语言)语句“select*from table1wherecol1_1=?”的查询效果。
table2的查询方法:支持对字段col2_1进行过滤查询,其查询效果可以等价于SQL语句“select*from table2 where col2_1=?”的查询效果。
table3的查询方法:支持对字段col3_1进行过滤查询,其查询效果可以等价于SQL语句“select*from table3 where col3_1=?”的查询效果。
需要指出,SQL语句中的“?”可称为参数占位符,该参数占位符所在的位置用于放置具体的字段值。当用户A想要对table1、table2、table3中的至少两个数据表进行联合查询时,可以通过用户设备101向数据库服务器102提交针对至少两个数据表进行联合查询的查询语句。以联合查询类型为左连接为例进行示例说明,比如用于进行多表联合查询的查询语句如下:
select*from table1 left join table2 on table1.col1_2=table2.col2_1and table1.col1_1=?。
其中,查询条件table1.col1_1=?满足table1的查询方法,可以查得table1的查询结果;根据table1的查询结果,可以通过查询条件table2.col2_1=table1.col1_2满足table2的查询方法,查得table2的查询结果。
这里对数据表的查询条件进行说明:数据表的查询条件是指在查询数据表时,通过指定特定的条件来过滤所返回的数据结果。查询条件可以包括以下内容:
(1)等值条件:通过指定某个字段的值来匹配记录,比如WHERE name='张三'。
(2)范围条件:通过指定某个字段在某个范围内的值来匹配记录,比如WHERE age>=18AND age<=30。
(3)包含条件:通过指定某个字段包含特定的关键词来匹配记录,比如WHEREaddress LIKE'%北京%'。
(4)排除条件:通过指定某个字段不包含特定的关键词来匹配记录,比如WHEREaddress NOT LIKE'%上海%'。
(5)空值条件:通过指定某个字段为空或非空来匹配记录,比如WHERE email ISNULL。
(6)多条件组合:可以同时指定多个条件,并使用逻辑运算符(如AND、OR)进行组合,比如WHERE age>=18AND gender='男'。
查询条件可以根据具体需求而定,可以根据字段类型、业务逻辑等因素来确定使用何种查询条件。通过合理使用查询条件,可以提高查询的准确性和效率。
这里对联合查询类型进行说明:联合查询类型包括但不限于内连接、左连接、右连接、全连接和交叉连接等类型。
(1)内连接(INNER JOIN):返回两个表中满足连接条件的行。语法为:SELECT*FROMtable1 INNER JOIN table2 ON table1.*=table2.*。
(2)左连接(LEFT JOIN):返回左表中的所有行,以及右表中满足连接条件的行。如果右表中没有匹配的行,以NULL填充。语法为:SELECT*FROM table1 LEFT JOIN table2 ONtable1.*=table2.*。
(3)右连接(RIGHT JOIN):返回右表中的所有行,以及左表中满足连接条件的行。如果左表中没有匹配的行,以NULL填充。语法为:SELECT*FROM table1 RIGHT JOIN table2ON table1.*=table2.*。
(4)全连接(FULL JOIN):返回左表和右表中的所有行,如果没有匹配的行,用NULL填充。语法为:SELECT*FROM table1 FULL JOIN table2 ON table1.*=table2.*。
(5)交叉连接(CROSS JOIN):返回两个表中的所有可能的组合,即笛卡尔积。语法为:SELECT*FROM table1 CROSS JOIN table2。
其中,“*”表示列名,可依据数据表中列名的具体命名方式具体设置。联合查询可以帮助我们在多个相关联的表中获取所需的数据,并将它们进行组合和筛选,以满足具体的查询需求。在实际应用中,根据具体的业务需求,选择合适的联合查询类型可以提高查询的准确性和效率。
接下来对本说明书实施例提供的多表联合查询方法进行示例性说明:
多表联合查询方法可由任何具有数据存储、计算、处理能力的设备、平台或设备集群执行,例如,可由数据库服务器(如图1中所示的数据库服务器102)、数据流转中枢平台、隐私协作应用平台或数矩服务平台等执行。
请参阅图2,图2示出了一种多表联合查询方法的流程示意图。以多表联合查询方法由数据库服务器执行为例进行说明,多表联合查询方法包括:
在S201中,获取用于进行多表联合查询的查询语句,并对所述查询语句进行解析,得到解析结果;其中,所述解析结果包括待查询的多个数据表、为所述多个数据表中的至少一个数据表指定的查询条件、所述多个数据表之间的联合查询类型;所述多个数据表中的各个数据表对应有查询方法,所述查询方法支持使用数据表的至少部分字段进行过滤查询。
示例性的,针对于上述的查询语句“select*from table1 left join table2 ontable1.col1_2=table2.col2_1and table1.col1_1=?”进行解析,可以确定待查询的数据表包括table1和table2,为table1指定了查询条件“table1.col1_1=?”,以及两个数据表之间的联合查询类型为左连接(left join)。
由数据库服务器自动解析输入的查询语句,并从中提取出待查询的多个数据表、查询条件和联合查询类型等重要信息,可以减少手动解析查询语句的工作量,提高操作效率。
在S202中,根据针对所述多个数据表中的至少一个数据表指定的查询条件和所述多个数据表中的各个数据表对应的查询方法,从所述多个数据表中确定与其他数据表不存在查询依赖关系的可查询数据表。
示例性的,针对于上述的查询语句,table1的查询条件“table1.col1_1=?”,且table1的查询方法支持对字段col1_1进行过滤查询,则可以确定与其他数据表不存在查询依赖关系的可查询数据表为table1。
也就是说,与其他数据表不存在查询依赖关系的可查询数据表对应有查询条件和查询方法、且所述可查询数据表的查询条件指向的字段为所述可查询数据表的查询方法支持的能够进行过滤查询的字段。
通过确定没有查询依赖的可查询数据表,该方法可以减少对数据源的依赖限制,从而更好地适应数据源变化和数据表关联关系的调整,提高灵活性和可维护性。
在S203中,将所述多个数据表作为节点,并按照所述多个数据表之间的联合查询类型构建多个节点之间的有向边,以生成有向无环图;所述有向无环图中的任意两个节点之间的有向边用于表征所述任意两个节点对应的数据表之间的查询依赖关系。
在多表联合查询中,两个数据表之间是否可以建立查询依赖关系,受限于两个数据表之间的联合查询类型。因此,本说明书实施例提供的多表联合查询方法实现基于多个数据表之间的联合查询类型构建多个节点之间的有向边,生成有向无环图,实现正确确定多个数据表的查询依赖关系,从而为后续能够自动生成逻辑执行计划提供正确的依据。
示例性的,联合查询类型可以基于查询语句中的表征联合查询的关键字确定。join、inner join、left join、right join以及full join等。
在S204中,根据所述可查询数据表,确定所述有向无环图中的节点对应的数据表的查询顺序。
示例性的,可以从可查询数据表对应的节点开始,根据所述有向无环图中的有向边的指向,完成所述有向无环图中的节点的排序,从而确定有向无环图中的节点对应的数据表的查询顺序。
在S205中,按照所述有向无环图中的节点对应的数据表的查询顺序生成所述查询语句的逻辑执行计划,并利用所述逻辑执行计划进行数据查询。
示例性的,按照S204所确定的查询语句中的多个数据表的查询顺序自动生成查询语句的逻辑执行计划,并利用逻辑执行计划进行数据查询,可以确保查询按照正确的顺序执行,避免数据表之间的查询依赖问题,保证查询结果的准确性和完整性;并且逻辑执行计划的自动生成也有利于提高数据开发效率,并可避免人工编码或编排导致的错误。
在一些实施例中,发明人在实现本说明书实施例提供的多表联合查询方法的过程中发现,在多表联合查询中,两个数据表之间是否可以建立查询依赖关系,受限于两个数据表之间的联合查询类型。
以左连接为例进行说明:
针对于查询语句:select*from table1 left join table2 on table1.col1_2=table2.col2_1and table1.col1_1=?,查询时的数据传递如图3所示由于查询条件的限制,table2的查询需要通过关联条件table2.col2_1=table1.col1_2,依赖table1的查询结果完成。该查询语句的含义是从表table1中选取所有的记录,并且对于每条table1的记录,如果存在匹配的table2记录(满足table1的col1_1与table2的col2_1相等),则将table2的相关列数据连接到table1的记录上。如果某条table1的记录没有匹配的table2记录,则相关table2的列数据为NULL。最终的查询结果包含table1的所有记录以及匹配的table2的列数据(如果有匹配的话)。
针对于查询语句:select*from table1 left join table2 on table1.col1_1=table2.col2_2and table2.col2_1=?,查询时的数据传递如图4所示。由于查询条件的限制,table1的查询需要通过关联条件table1.col1_1=table2.col2_2,依赖table2的查询结果完成。该查询语句的含义是从表table1中选取所有的记录,并且对于每条table1的记录,如果存在匹配的table2记录(满足table1的col1_1与table2的col2_2相等以及table2的col2_1与给定参数相等),则将table2的相关列数据连接到table1的记录上,如果某条table1的记录没有匹配的table2记录,则相关table2的列数据为NULL。最终的查询结果包含table1的所有记录以及匹配的table2的列数据(如果有匹配的话)。而在实际的应用过程中,由于table2只向table1提供了table2过滤后的结果,而无法提供空值供table1完成关联查询,所以导致查询结果缺失了一部分。
也就是说,对于可能产生空值结果的连接查询,产生空值的一侧不能被另一侧所依赖。因此,对于table1 join table2,可以确定当联合查询类型为内连接或者左连接时,只允许table2依赖table1;当联合查询类型为右连接时,只允许table1依赖table2;当联合查询类型为全连接时,不支持任何查询依赖关系。
因此,在生成有向无环图时,数据库服务器可以将多个数据表作为节点,根据多个数据表之间的联合查询类型确定多个数据表中的依赖方和被依赖方,并构建从被依赖方对应的节点指向依赖方对应的节点的有向边,以生成有向无环图。实现基于联合查询类型正确确定数据表之间的查询依赖关系,根据查询依赖关系构建有向无环图,进而确定数据表的查询顺序,确保了查询顺序的合理性,可以避免不必要的重复查询和数据冗余,提高查询效率。
示例性的,查询语句包括用于确定联合查询类型的关键字,如join、inner join、left join、right join以及full join等。在确定用于多表联合查询的多个数据表中的依赖方和被依赖方时,首先将在查询语句中位于用于确定联合查询类型的关键字前方的数据表确定为左表,以及将位于用于确定联合查询类型的关键字后方的数据表确定为右表。若联合查询类型为内连接或左连接,将左表确定为被依赖方以及将右表确定为依赖方。若联合查询类型为右连接,将左表确定为依赖方以及将右表确定为被依赖方。若联合查询类型为全连接,确定左表和右表之间不存在查询依赖关系。
在一些实施例中,在生成有向无环图之后,数据库服务器可以根据可查询数据表,确定有向无环图中的节点对应的数据表的查询顺序。
在一种可能的实现方式中,数据库服务器可以确定可查询数据表的数量,在可查询数据表的数量为1的情况下,可以从有向无环图中与该可查询数据表对应的节点开始,根据有向无环图中的有向边的指向,完成有向无环图中的所有节点的排序,从而确定有向无环图中的节点对应的数据表的查询顺序。
在另一种可能的实现方式中,数据库服务器可以确定可查询数据表的数量,在可查询数据表的数量有多个的情况下,可以先确定多个可查询数据表分别对应的查询代价,各个可查询数据表的查询代价用于表征针对于该可查询数据表进行查询所需的查询资源的成本。示例性的,该查询资源包括但不限于计算资源、存储资源和传输资源等。
这里示例性示出影响查询代价的因素:
(1)数据量:查询操作需要处理的数据量越大,查询的代价就越高。如果表中有大量的行和列,查询可能需要更多的时间和资源来处理。
(2)索引:索引可以提高查询性能,但也会增加存储和维护的开销。如果查询需要使用索引,数据库系统需要读取和搜索索引,这可能会增加查询的代价。
(3)查询条件和连接操作:复杂的查询条件可能需要更多的计算和比较操作,从而增加查询的代价。
(4)数据分布和统计信息:如果数据在表中分布不均匀,或者统计信息不准确,数据库系统可能无法选择最有效的查询计划,导致查询代价增加。
(5)硬件资源和配置:数据库服务器的硬件资源和配置也会影响查询代价。例如,CPU、内存和磁盘的性能和可用性将直接影响查询的执行速度和效率。
在确定多个可查询数据表分别对应的查询代价之后,数据库服务器可以按照多个可查询数据表分别对应的查询代价从小到大的顺序,确定多个可查询数据表的查询顺序。以及从各个可查询数据表对应的节点开始,按照有向无环图中的有向边,确定有向无环图中的其他节点对应的数据表相对于可查询数据表的查询顺序。最后根据多个可查询数据表的查询顺序、以及有向无环图中的其他节点对应的数据表相对于可查询数据表的查询顺序,确定有向无环图中的节点对应的数据表的查询顺序。
本实施例中,通过确定各个可查询数据表的查询代价,系统能够按照查询资源成本从小到大的顺序来执行查询,从而最小化整体查询的计算、存储和传输资源消耗。通过合理地安排查询顺序,可以减少数据加载和计算的等待时间,提高整体查询的响应速度。并且基于有向无环图,可以适应多个可查询数据表之间复杂的依赖关系,保证了查询顺序的合理性并且有利于系统的扩展和调整。
在一些实施例中,由上述描述可知,两个数据表之间是否存在查询依赖关系,取决于两个数据表之间的查询依赖关系,则在根据所述可查询数据表确定所述有向无环图中的节点对应的数据表的查询顺序之后,可能存在有些数据表并未被标识查询顺序,也就是说,用户输入的查询语句本身存在问题。因此,请参阅图5,在S205之前,多表联合查询方法还包括:
在S206中,判断所述有向无环图中的每个节点是否均有所述查询顺序指示的查询标识。若是,执行S205,若否,执行S207。
在S207中,输出所述查询语句不可执行的提示信息。
本实施例通过判断有向无环图中每个节点是否都有查询顺序指示的查询标识,可以自动检测用户输入的查询语句是否存在数据表未被正确标识的情况,帮助用户及时发现潜在的查询问题,可以有效地提高用户输入查询语句的准确性和合法性,避免由于数据表之间的查询依赖关系而导致的查询错误。当发现查询语句不可执行时,输出相应的提示信息,帮助用户理解查询语句存在的问题,并提供指导以纠正错误。
可以理解的是,本实施例对于查询标识不做任何限制,可以是指示查询顺序的数字序号、字符、或者其他字符等。
在一些实施例中,多表联合查询中可能还存在至少两个数据表之间的集合运算。集合运算的运算类型包括并集(UNION)、交集(INTERSECT)以及差集(EXCEPT/MINUS)中的至少一种。并集是将两个查询结果合并为一个结果集,去除重复的记录。交集返回同时存在于两个查询结果集的记录。差集返回存在于第一个查询结果集但不存在于第二个查询结果集中的记录。
如果用户在进行多表联合查询时还对其中的至少两个数据表进行集合运算,则查询语句的解析结果中还包括在对所述多个数据表进行多表联合查询时,对所述多个数据表中的至少两个数据表进行集合运算的运算类型。
以并集(UNION)为例进行示例性说明:对于如图1所示的3个表table1、table2、table3。
对于如下的查询语句:
该条查询语句使用UNION操作符将表table2的col2_1和表table3的col3_1合并为一个结果集(u)。以及从表table1中选择所有的列(使用*通配符),使用JOIN操作将表table1与结果集(u)进行连接,连接条件为table1表的col1_1与结果集(u)的col_u_1相等,同时table1表的col1_2与结果集(u)的col_u_1相等。也就是说,table2和table3的查询均需要依赖table1的查询结果,查询时数据的传递如图6所示。
对于如下的查询语句:
该条查询语句使用UNION操作符将满足条件col2_1=?的表table2的col2_2和满足条件col3_1=?的表table3的col3_2合并为一个结果集(u)。以及从表table1中选择所有的列(使用*通配符),使用JOIN操作将表table1与结果集(u)进行连接,连接条件为table1表的col1_1与结果集(u)的col_u_2相等。也就是说,table1的查询需要依赖table2和table3的关联结果,查询时数据的传递如图7所示。
也就是说,进行集合运算的至少两个表都应该有相同的查询状态,即均可查询/均不可查询。如上述示例中,若(table2 union table3)依赖于table1,则需要table1同时为table2和table3提供查询条件;反之,若table1依赖于(table2 union table3),则table2和table3都需要为table1提供查询条件。
因此,请参阅图8,在S203之后,多表联合查询方法还包括:
在S208中,将所述集合运算的运算类型指向的至少两个数据表对应的节点进行合并,生成包含合并节点的有向无环图。
本实施例将进行集合运算的至少两个数据表在有向无环图中对应的节点进行合并,有利于保证合并节点对应的至少两个数据表具有相同的查询顺序,使得至少两个数据表的查询状态相同,也即至少两个数据表有相同的可以查询/不可查询状态。
可以理解的是,对于合并节点,当且仅当合并节点对应的至少两个数据表的查询状态均为可查询时,依赖于该合并节点的其他节点(也即该合并节点的有向边指向的其他节点)可查。
以上实施方式中的各种技术特征可以任意进行组合,只要特征之间的组合不存在冲突或矛盾,但是限于篇幅,未进行一一描述,因此上述实施方式中的各种技术特征的任意进行组合也属于本说明书公开的范围。
图9是一示例性实施例提供的一种设备的示意结构图。请参考图9,在硬件层面,该设备包括处理器302、内部总线304、网络接口306、内存308以及非易失性存储器310,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器302从非易失性存储器310中读取对应的计算机程序到内存308中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图10,多表联合查询装置可以应用于如图10所示的设备中,以实现本说明书的技术方案。其中,该多表联合查询装置可以包括:
语句解析模块401,用于获取用于进行多表联合查询的查询语句,并对所述查询语句进行解析,得到解析结果;其中,所述解析结果包括待查询的多个数据表、为所述多个数据表中的至少一个数据表指定的查询条件、所述多个数据表之间的联合查询类型;所述多个数据表中的各个数据表对应有查询方法,所述查询方法支持使用数据表的至少部分字段进行过滤查询。
可查询数据表确定模块402,用于根据针对所述多个数据表中的至少一个数据表指定的查询条件和所述多个数据表中的各个数据表对应的查询方法,从所述多个数据表中确定与其他数据表不存在查询依赖关系的可查询数据表。
有向无环图生成模块403,用于将所述多个数据表作为节点,并按照所述多个数据表之间的联合查询类型构建多个节点之间的有向边,以生成有向无环图;所述有向无环图中的任意两个节点之间的有向边用于表征所述任意两个节点对应的数据表之间的查询依赖关系。
查询顺序确定模块404,用于根据所述可查询数据表,确定所述有向无环图中的节点对应的数据表的查询顺序。
数据查询模块405,用于按照所述有向无环图中的节点对应的数据表的查询顺序生成所述查询语句的逻辑执行计划,并利用所述逻辑执行计划进行数据查询。
在一些实施例中,所述可查询数据表对应有查询条件和查询方法、且所述可查询数据表的查询条件指向的字段为所述可查询数据表的查询方法支持的能够进行过滤查询的字段。
在一些实施例中,所述有向无环图生成模块403,具体用于根据所述多个数据表之间的联合查询类型确定所述多个数据表中的依赖方和被依赖方,并构建从所述被依赖方对应的节点指向所述依赖方对应的节点的有向边。
在一些实施例中,所述查询语句包括用于确定所述联合查询类型的关键字。所述有向无环图生成模块403,具体用于将在所述查询语句中位于所述关键字前方的数据表确定为左表,以及将位于所述关键字后方的数据表确定为右表;若所述联合查询类型为内连接或左连接,将所述左表确定为被依赖方以及将所述右表确定为依赖方;若所述联合查询类型为右连接,将所述左表确定为依赖方以及将所述右表确定为被依赖方;若所述联合查询类型为全连接,确定所述左表和所述右表之间不存在查询依赖关系。
在一些实施例中,还包括判断模块,用于判断所述有向无环图中的每个节点是否均有所述查询顺序指示的查询标识;若是,执行生成所述查询语句的逻辑执行计划的操作;若否,输出所述查询语句不可执行的提示信息。
在一些实施例中,所述查询顺序确定模块404,具体用于确定所述可查询数据表的数量;在所述可查询数据表有多个的情况下,确定多个可查询数据表分别对应的查询代价;各个可查询数据表的查询代价用于表征针对于该可查询数据表进行查询所需的查询资源的成本;按照所述多个可查询数据表分别对应的查询代价从小到大的顺序,确定所述多个可查询数据表的查询顺序;从各个所述可查询数据表对应的节点开始,按照所述有向无环图中的有向边,确定所述有向无环图中的其他节点对应的数据表相对于所述可查询数据表的查询顺序;根据所述多个可查询数据表的查询顺序、以及所述有向无环图中的其他节点对应的数据表相对于所述可查询数据表的查询顺序,确定所述有向无环图中的节点对应的数据表的查询顺序。
在一些实施例中,所述解析结果还包括:在对所述多个数据表进行多表联合查询时,对所述多个数据表中的至少两个数据表进行集合运算的运算类型;
所述有向无环图生成模块403,还用于将所述集合运算的运算类型指向的至少两个数据表对应的节点进行合并,生成包含合并节点的有向无环图。
在一些实施例中,所述合并节点对应的至少两个数据表具有相同的查询状态;所述查询状态为可查询或不可查询。
在一些实施例中,所述查询语句包括用于确定所述集合运算的运算类型的关键字;所述集合运算的运算类型包括并集、交集以及差集中的至少一种。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
在一些实施例中,本说明书实施例还提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器通过运行所述可执行指令以实现上述中任一项所述的方法。
在一些实施例中,本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述任一项所述方法的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (12)
1.一种多表联合查询方法,其特征在于,包括:
获取用于进行多表联合查询的查询语句,并对所述查询语句进行解析,得到解析结果;其中,所述解析结果包括待查询的多个数据表、为所述多个数据表中的至少一个数据表指定的查询条件、所述多个数据表之间的联合查询类型;所述多个数据表中的各个数据表对应有查询方法,所述查询方法支持使用数据表的至少部分字段进行过滤查询;
根据针对所述多个数据表中的至少一个数据表指定的查询条件和所述多个数据表中的各个数据表对应的查询方法,从所述多个数据表中确定与其他数据表不存在查询依赖关系的可查询数据表;
将所述多个数据表作为节点,并按照所述多个数据表之间的联合查询类型构建多个节点之间的有向边,以生成有向无环图;所述有向无环图中的任意两个节点之间的有向边用于表征所述任意两个节点对应的数据表之间的查询依赖关系;
根据所述可查询数据表,确定所述有向无环图中的节点对应的数据表的查询顺序;
按照所述有向无环图中的节点对应的数据表的查询顺序生成所述查询语句的逻辑执行计划,并利用所述逻辑执行计划进行数据查询。
2.根据权利要求1所述的方法,其特征在于,所述可查询数据表对应有查询条件和查询方法、且所述可查询数据表的查询条件指向的字段为所述可查询数据表的查询方法支持的能够进行过滤查询的字段。
3.根据权利要求1所述的方法,其特征在于,所述按照所述多个数据表之间的联合查询类型构建多个节点之间的有向边,包括:
根据所述多个数据表之间的联合查询类型确定所述多个数据表中的依赖方和被依赖方,并构建从所述被依赖方对应的节点指向所述依赖方对应的节点的有向边。
4.根据权利要求3所述的方法,其特征在于,所述查询语句包括用于确定所述联合查询类型的关键字;
所述根据所述多个数据表之间的联合查询类型确定所述多个数据表中的依赖方和被依赖方,包括:
将在所述查询语句中位于所述关键字前方的数据表确定为左表,以及将位于所述关键字后方的数据表确定为右表;
若所述联合查询类型为内连接或左连接,将所述左表确定为被依赖方以及将所述右表确定为依赖方;
若所述联合查询类型为右连接,将所述左表确定为依赖方以及将所述右表确定为被依赖方;
若所述联合查询类型为全连接,确定所述左表和所述右表之间不存在查询依赖关系。
5.根据权利要求1至3任意一项所述的方法,其特征在于,在所述按照所述有向无环图中的多个节点的查询顺序生成所述查询语句的逻辑执行计划之前,还包括:
判断所述有向无环图中的每个节点是否均有所述查询顺序指示的查询标识;
若是,执行生成所述查询语句的逻辑执行计划的操作;
若否,输出所述查询语句不可执行的提示信息。
6.根据权利要求1所述的方法,其特征在于,所述根据所述可查询数据表,确定所述有向无环图中的节点对应的数据表的查询顺序,包括:
确定所述可查询数据表的数量;
在所述可查询数据表有多个的情况下,确定多个可查询数据表分别对应的查询代价;各个可查询数据表的查询代价用于表征针对于该可查询数据表进行查询所需的查询资源的成本;
按照所述多个可查询数据表分别对应的查询代价从小到大的顺序,确定所述多个可查询数据表的查询顺序;
从各个所述可查询数据表对应的节点开始,按照所述有向无环图中的有向边,确定所述有向无环图中的其他节点对应的数据表相对于所述可查询数据表的查询顺序;
根据所述多个可查询数据表的查询顺序、以及所述有向无环图中的其他节点对应的数据表相对于所述可查询数据表的查询顺序,确定所述有向无环图中的节点对应的数据表的查询顺序。
7.根据权利要求1所述的方法,其特征在于,所述解析结果还包括:在对所述多个数据表进行多表联合查询时,对所述多个数据表中的至少两个数据表进行集合运算的运算类型;
在所述生成有向无环图之后,还包括:
将所述集合运算的运算类型指向的至少两个数据表对应的节点进行合并,生成包含合并节点的有向无环图。
8.根据权利要求7所述的方法,其特征在于,所述合并节点对应的至少两个数据表具有相同的查询状态;所述查询状态为可查询或不可查询。
9.根据权利要求7所述的方法,其特征在于,所述查询语句包括用于确定所述集合运算的运算类型的关键字;
所述集合运算的运算类型包括并集、交集以及差集中的至少一种。
10.一种多表联合查询装置,其特征在于,包括:
语句解析模块,用于获取用于进行多表联合查询的查询语句,并对所述查询语句进行解析,得到解析结果;其中,所述解析结果包括待查询的多个数据表、为所述多个数据表中的至少一个数据表指定的查询条件、所述多个数据表之间的联合查询类型;所述多个数据表中的各个数据表对应有查询方法,所述查询方法支持使用数据表的至少部分字段进行过滤查询;
可查询数据表确定模块,用于根据针对所述多个数据表中的至少一个数据表指定的查询条件和所述多个数据表中的各个数据表对应的查询方法,从所述多个数据表中确定与其他数据表不存在查询依赖关系的可查询数据表;
有向无环图生成模块,用于将所述多个数据表作为节点,并按照所述多个数据表之间的联合查询类型构建多个节点之间的有向边,以生成有向无环图;所述有向无环图中的任意两个节点之间的有向边用于表征所述任意两个节点对应的数据表之间的查询依赖关系;
查询顺序确定模块,用于根据所述可查询数据表,确定所述有向无环图中的节点对应的数据表的查询顺序;
数据查询模块,用于按照所述有向无环图中的节点对应的数据表的查询顺序生成所述查询语句的逻辑执行计划,并利用所述逻辑执行计划进行数据查询。
11.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1至9中任一项所述的方法。
12.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1至9中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311611555.5A CN117609303A (zh) | 2023-11-28 | 2023-11-28 | 多表联合查询方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311611555.5A CN117609303A (zh) | 2023-11-28 | 2023-11-28 | 多表联合查询方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117609303A true CN117609303A (zh) | 2024-02-27 |
Family
ID=89949451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311611555.5A Pending CN117609303A (zh) | 2023-11-28 | 2023-11-28 | 多表联合查询方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117609303A (zh) |
-
2023
- 2023-11-28 CN CN202311611555.5A patent/CN117609303A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107038207B (zh) | 一种数据查询方法、数据处理方法及装置 | |
CN112559554B (zh) | 一种查询语句优化方法及装置 | |
KR20170019352A (ko) | 데이터 질의 방법 및 장치 | |
CN110795455A (zh) | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 | |
CN103440288A (zh) | 一种大数据存储方法及装置 | |
CN110019384B (zh) | 一种血缘数据的获取方法、提供血缘数据的方法及装置 | |
CN113672977A (zh) | 隐私数据处理方法和装置 | |
CN113094387A (zh) | 一种数据查询方法、装置、电子设备及机器可读存储介质 | |
CN112579610A (zh) | 多数据源结构分析方法、系统、终端设备及存储介质 | |
CN111723161A (zh) | 一种数据处理方法、装置及设备 | |
CN111125199B (zh) | 一种数据库访问方法、装置及电子设备 | |
US20150120697A1 (en) | System and method for analysis of a database proxy | |
CN110580255A (zh) | 一种存储并检索数据的方法以及系统 | |
CN103678591A (zh) | 自动执行多业务单据统计处理的装置和方法 | |
CN114297204A (zh) | 一种异构数据源的数据存储、检索方法及装置 | |
CN109697234B (zh) | 实体的多属性信息查询方法、装置、服务器和介质 | |
CN116610694A (zh) | 一种基于列和访问语句关系的规则校验方法和系统 | |
CN108241624B (zh) | 一种查询脚本的生成方法及装置 | |
CN111666278A (zh) | 数据存储、检索方法、电子设备及存储介质 | |
CN115658680A (zh) | 数据存储方法、数据查询方法和相关装置 | |
US11847121B2 (en) | Compound predicate query statement transformation | |
CN117609303A (zh) | 多表联合查询方法、装置、设备及存储介质 | |
CN114564621A (zh) | 一种关联数据的方法、装置、设备及可读存储介质 | |
CN111159192B (zh) | 基于大数据的数据入库方法、装置、存储介质和处理器 | |
CN113868138A (zh) | 测试数据的获取方法、系统、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |