润乾 NLQ 课程 - 6 多表查询

6. 多表查询

6.1. 查主表,聚合子表

查询:订单表的明细数

意图:查询实体“订单表”,同时对实体词“明细”对应记录计数。

DQL 元数据中,ORDERS 表是主表,通过维度“ORDERS”关联子表ORDERDETAIL,每个订单对应多个明细。

..

这里查询主表的数据同时,查出子表的聚合结果。导入订单明细表,修改字段、定义实体后即可直接查询。

注意:主子表是通过主键或主键的一部分关联的,比如订单表主键是订单编号,明细表的主键是订单编号、产品编号

查询:雇员信息订单总数

意图:查询实体词“雇员信息”,同时实体“订单”对应记录计数。

DQL 元数据中,EMPLOYEE 表是主表,通过维度 EMPLOYEE 关联子表ORDERDS,每个客户对应 0 个或多个订单。

..

这里查询主表的数据同时,查出子表的聚合结果。

注意:EMPLOYEEID 不是订单表主键,订单表严格意义上并非员工表的子表。但订单表通过外键字段“销售”与部分员工关联,每位员工可能对应 0 条或多条订单表数据,也看做一种主子关系。

6.2. 查主表,子表先过滤再聚合

查询:男员工 1 万元以上订单数

意图:过滤查询实体“雇员”,同时对实体“订单”过滤、计数。

主表子表对应的实体,都可以有过滤条件。

6.3. 查主表,用子表聚合值过滤

查询:订单数超过 3 员工,姓名

意图:查询“雇员”, “订单”聚合计数,结果大于 3

实体“雇员”是主表,实体“订单”是子表。

6.4. 查主表在子表中是否有对应记录

查询:订单总数大于 0 的员工

意图:查询“雇员”,雇员编号在“订单”中必须存在。

实体“雇员”是主表,实体“订单”是子表。