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不一定按照表的先后顺序依次执行连接,而是根据执行代价选择最优的连接顺序。

上一篇:遥感图像分类现状及存在的问题


下一篇:datetime 获取当前时间的各种格式(转)