润乾 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 的员工
意图:查询“雇员”,雇员编号在“订单”中必须存在。
实体“雇员”是主表,实体“订单”是子表。
