7.5 关联查询:左连接 - 多字段关联
相互关联的表,通过多字段主键左连接筛选记录。
根据相互关联的产品表、订单明细表和订单回款表,查询 2014 年有回款记录,且单笔订单金额超过 500 的产品名称。

使用 A.join() 函数进行多字段主键的外连接。
脚本:
| A | |
|---|---|
| 1 | =connect(“db”) |
| 2 | =A1.query(“select * from Detail”) |
| 3 | =A1.query(“select * from Payment”) |
| 4 | =A1.query@x(“select * from Product”) |
| 5 | =A2.switch@i(ProductID,A4:ID) |
| 6 | =A3.join(OrderID:OrderNumber,A5:ID:Number,~:Detail) |
| 7 | =A6.select(year(Date)==2014 && Detail.Amount>500) |
| 8 | =A7.new(ID,Date,Detail.Product.Name:Name,Detail.Amount:Amount) |
A1 连接数据库
A2 查询订单明细表
A3 查询订单回款表
A4 查询产品表
A5 使用 switch@i 函数,将订单明细表的产品 ID 转换成对应记录,无对应记录时删除
A6 使用 A.join 函数连接订单明细表和订单回款表
A7 选出 2014 年的回款记录,订单金额超过 500 的。
A8 从选出结果创建序表
运行结果:
| ID | Date | Name | Amount |
|---|---|---|---|
| 10979 | 2014/03/26 | Soda water | 1317 |
| 11011 | 2014/04/09 | Espresso | 530 |
| … | … | … | … |
