SQLSERVER不带JOIN的语句与带JOIN语句的区别

//1.连接两个表查询
SELECT * FROM table1,table2
//2.连接两个表查询
SELECT  * FROM table1 join table2 on table1.id=table2.id

 1.第一个连接查询的结果是一个笛卡尔积:也就是表1的行数乘以表2的行数(表一的每条记录都会与表二每条记录进行组合)
如:

表一       表二

1             a

2             b

3             c

生成之后的结果为:3x3条记录

1      a

1      b

1      c

2      a

2      b

2      c

3      a

3      b

3      c

 

2.第二个连接查询的结果为符合table1.id=table2.d_id 的记录,on 后面的语句相当于一个筛选条件。

表一                            表2

id     e_name          d_id           d_name

1      a                   1                 z

1      b                   2                 x

2      c                 

3      d

生成的查询结果为id等于d_id的记录

id      e_name     d_id      d_name

1       a              1          z

1       b              1          z

2       c               2          x

 

SQLSERVER不带JOIN的语句与带JOIN语句的区别

上一篇:在rhel6上安装11.2.0.3 or 11.2.0.4 db sofrware时报缺少"elfutils-libelf-devel-0.97" And "pdksh-5.2.14"


下一篇:转:如何学习SQL(第四部分:DBMS扩展功能与SQL高级话题)