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

时间:2023-03-10 07:11:56
SQLSERVER不带JOIN的语句与带JOIN语句的区别
//1.连接两个表查询
SELECT * FROM table1 t1,table2 t2
//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