实例

电商系统

设某电子商务公司的的数据库中有下列四张表(其中有下划线的属性为主码): Customers(Cno,Cname,Csex,Cage,Caddress,Mphone,Email) 分别为客户编号,客户姓名,客户性别,客户年龄,客户地址  Goods(Gno,Gname,Gtype,Price,manufac) 分别为商品编号,商品名称,商品类别,价格,生产商  Sells(Sno,Sdate,Saddress,Cno,IsPay) 分别为销售单号,销售日期,送货地址,客户编号,是否已付款。 客户付款前IsPay取值为‘N’,付款后IsPay取值为‘Y Detail(Sno,Gno,Quantity) 分别为销售单号,商品编号,数量。

需求

之一

找出每位客户的编号、姓名、手机号以及他每次购物的日期和是否已付款信息,即使该客户没有购买过商品,也要有他的编号、姓名和手机号。

解析

最终的查询结果表应该是这样的:

Cno    Cname    Mpjone    Sdate    IsPay
1    张三    13912345678    2023-03-01    Y
1    张三    13912345678    2023-03-15    N
2    李四    15887654321    NULL    NULL
3    王五    13666666666    2023-03-10    Y
你可以看到,张三有两次购物记录,一次已付款,一次未付款;李四没有购买过商品,所以他的日期和是否已付款信息显示为NULL;王五有一次购物记录,并且已付款。