笔记-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;

 

你可能感兴趣的:(SQL Server 2008)