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

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。