GBase8s数据库扩展外连接

本文详细介绍了GBase8s数据库中的扩展外连接语法,包括如何使用OUTER关键字创建外连接查询,展示了如何处理复合外连接,并提供了示例说明如何在外连接中处理多个表之间的关系。通过这些示例,读者可以理解如何在GBase8s中实现显示所有客户及其订单,即使某些客户没有订单记录,也会返回NULL值。此外,还讨论了在WHERE子句中正确指定连接条件的重要性。
摘要由CSDN通过智能技术生成

对于外连接的 GBase 8s 扩展语法始于隐式的左外连接。即,您以 OUTER 关键字开始 GBase 8s

扩展外连接。

这是 GBase 8s 扩展 OUTER 子句的语法。

GBase 8s OUTER 子句

下列示例使用 OUTER 关键字来创建罗列所有客户及其订单的外连接,不论他们是否已下订单:

SELECT c.customer_num, c.lname, o.order_num FROM customer c,

OUTER orders o WHERE c.customer_num = o.customer_num;

此带有在 orders 表中相匹配的行从 customer 表返回所有行。如果在 orders 表中没有客户的记

录出现,则对那些有 NULL 值的客户返回的 order_num 列。

如果您有复合的外连接,即,该查询有多个外连接,则您必须或者嵌入附加的外连接或者在圆括号

中连接,如语法图所示,或在 WHERE 子句中的主表与每一从表之间创建连接条件或关系。

当 WHERE 子句中的表达式或条件关系到两个从表时,您必须在 FROM 子句中使用圆括号将连接的

表括起来,以强调主-从关系,如此例中所示:

SELECT c.company, o.order_date, i.total_price, m.manu_name

FROM customer c,

OUTER (orders o, OUTER (items i, OUTER manufact m))

WHERE c.customer_num = o.customer_num

AND o.order_num = i.order_num

AND i.manu_code = m.manu_code;

当您在 FROM 子句中省略括起从表的圆括号时,您必须在 WHERE 子句中的主表与每一从表之

间建立连接条件。如果连接条件在两个从表之间,则查询失败。

然而,下列示例成功地返回结果

将主表 customer 与子表 orders 连接

并将主表 customer 与从表 cust_calls 连接:

SELECT c.company, o.order_date, c2.call_descr

FROM customer c, OUTER orders o, OUTER cust_calls c2

WHERE c.customer_num = o.customer_num

AND c.customer_num = c2.customer_num;

GBase 8s SQL 教程指南 有复合的外连接的示例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值