SQL连接查询知识

发表于:2011-03-11来源:作者:点击数: 标签:
SQL连接查询知识 软件测试 SQL连接查询知识 一、交叉连接(CROSS JOIN) 交叉连接(CROSS JOIN):有两种,显式的和隐式的,不带ON子句,返回的是两表的乘积,也叫笛卡尔积。 例如:下面的语句1和语句2的结果是相同的。 语句1:隐式的交叉连接,没有CROSS JOIN。

  SQL连接查询知识   软件测试

  SQL连接查询知识

  一、交叉连接(CROSS JOIN)

  交叉连接(CROSS JOIN):有两种,显式的和隐式的,不带ON子句,返回的是两表的乘积,也叫笛卡尔积。

  例如:下面的语句1和语句2的结果是相同的。

  语句1:隐式的交叉连接,没有CROSS JOIN。

  SELECT O.ID, O.ORDER_NUMBER, C.ID, C.NAME

  FROM ORDERS O , CUSTOMERS C

  WHERE O.ID=1;

  语句2:显式的交叉连接,使用CROSS JOIN。

  SELECT O.ID,O.ORDER_NUMBER,C.ID,C.NAME

  FROM ORDERS O CROSS JOIN CUSTOMERS C

  WHERE O.ID=1;

  语句1和语句2的结果是相同的,查询结果如下:

  二、内连接(INNER JOIN)

  内连接(INNER JOIN):有两种,显式的和隐式的,返回连接表中符合连接条件和查询条件的数据行。(所谓的链接表就是数据库在做查询形成的中间表)。

  例如:下面的语句3和语句4的结果是相同的。

  语句3:隐式的内连接,没有INNER JOIN,形成的中间表为两个表的笛卡尔积。

  SELECT O.ID,O.ORDER_NUMBER,C.ID,C.NAME

  FROM CUSTOMERS C,ORDERS O

  WHERE C.ID=O.CUSTOMER_ID;

  语句4:显示的内连接,一般称为内连接,有INNER JOIN,形成的中间表为两个表经过ON条件过滤后的笛卡尔积。

  SELECT O.ID,O.ORDER_NUMBER,C.ID,C.NAME

  FROM CUSTOMERS C INNER JOIN ORDERS O ON C.ID=O.CUSTOMER_ID;

  语句3和语句4的查询结果:

原文转自:http://www.ltesting.net