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 |
… | … | … | … |