GBase 8a数据库的多表连接查询

将两个以上的表进行连接的操作称为多表连接。连接多张表需要使用多个 JOIN 关键字。

可以将多表连接的执行过程理解为:第 1 张表与第 2 张表连接,将得到的中间结果表再与第3张表连接,将得到的中间结果表再与第 4 张表连接,以此类推,直到获得最终结果表。

例 1.16 查询每位顾客提交订单的日期、所定的物品名称及物品价钱:

select cname,order_date,ship_name,

(ship_price*quantity) as total_price

from customer join orders

on customer.customer_num=orders.customer_num join items on orders.order_

num=items.order_num;

select cname,order_date,ship_name,

(ship_price*quantity) as total_price

from customer , orders ,items

where customer.customer_num=orders.customer_num

and orders.order_num=items.order_num;

查询结果为:

cname order_date ship_name total_price

张一川 05/20/2008 商品 HRO $250.00

张一川 05/21/2008 商品 HSK $1920.00

张一川 05/21/2008 商品 HSKA $720.00

杰克 05/22/2008 商品 ANZA $99.00

李凤 06/07/2008 商品 HRO $250.00

杰克 06/22/2008 商品 HRR $2400.00

由于内连接运算满足交换律和结合律,多张表的连接顺序不会改变结果表,所以DBMS不一定按照表的先后顺序依次执行连接,而是根据执行代价选择最优的连接顺序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值