这一篇文章要总结的是用得最多的联接查询即外联接查询,外联接查询相对于交叉联接和内联接来说要更复杂一些,我准备从以下几个方面对外联接进行总结。
1,什么是外联接查询
2,一个外联接查询的例子
3,关于外联接查询的总结
什么是外联接查询外联接除了有内联接的两个逻辑处理步骤(即笛卡尔积和ON过滤)之外,还多加一个外联接特有的第三步:添加外部行。
在外联接中,需要将一个表标记为保留表,在两个表之间用LEFT OUTER JOIN连接(OUTER是可选的),LEFT关键字左边表的行是保留的。外联接的第三个逻辑查询处理步骤就是要识别保留表中按照ON条件在另一个表中找不到与之匹配的那些行,然后将这些行添加到联接的前两个步骤生成的结果表中。对于来自联接的非保留表的那些列,追加的外部行中的这些列则用NULL作为占位符。
一个外联接查询的例子下面的例子查询根据客户的客户ID和订单的客户ID对Customers表和Orders表进行联接,并返回客户和他们的订单信息。该联接是使用的左外联接,所以查询结果会返回那些没有发出任何订单的客户。
SQL查询代码:
-- LEFT JOIN外联接查询SELECT customers.custid,customers.companyname,orders.orderid FROM Sales.Customers AS customersLEFT JOIN Sales.Orders AS orders ON customers.custid = orders.custid;
查询结果:
新闻热点
疑难解答