7.5 关联查询:左连接 - 多字段关联

 

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

imagepng

使用 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