笔记-Microsoft SQL Server 2008技术内幕:T-SQL语言基础-03 联接查询

联接有三种基本类型:交叉联接、内联接和外联接。交叉联接只有一个步骤——笛卡尔积;内联接有两个步骤——笛卡尔积、过滤;外联接有三个步骤——笛卡尔积、过滤、添加外部行。

内联接

代码:

SELECT E.empid, E.firstname, E.lastname, O.orderid
FROM HR.Employees AS E
  JOIN Sales.Orders AS O
    ON E.empid = O.empid;

 另一种写法:

SELECT E.empid, E.firstname, E.lastname, O.orderid
FROM HR.Employees AS E, Sales.Orders AS O
WHERE E.empid = O.empid;

 上面这种写法类似于交叉联接。

外联接

在外联接中,要把一个表标记为“保留的”表,可以在表名之间使用关键字LEFT OUTER JOIN、RIGHT OUTER JOIN,以及FULL OUTER JOIN,其中OUTER关键字是可选的。LEFT表示左边的表的行是保留的,RIGHT表示右边的表的行是保留的,FULL则表示两边的表的行都保留。

SELECT C.custid, C.companyname, O.orderid
FROM Sales.Customers AS C
  LEFT OUTER JOIN Sales.Orders AS O
    ON C.custid = O.custid;
原文地址:https://www.cnblogs.com/laixiancai/p/4591420.html