加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL中的“on ..”和“on .. where”之间的区别加入?

发布时间:2020-12-12 16:15:44 所属栏目:MsSql教程 来源:网络整理
导读:Sql语句. 1.select a.* from A a left join B b on a.id =b.id and a.id=2;2.select a.* from A a left join B b on a.id =b.id where a.id=2; 这两个sql语句有什么区别? 解决方法 create table A(id int);create table B(id int);INSERT INTO A VALUES(1);I
Sql语句.
1.select a.* from A a left join B b on a.id =b.id and a.id=2;

2.select a.* from A a left join B b on a.id =b.id where a.id=2;

这两个sql语句有什么区别?

解决方法

create table A(id int);
create table B(id int);

INSERT INTO A VALUES(1);
INSERT INTO A VALUES(2);
INSERT INTO A VALUES(3);

INSERT INTO B VALUES(1);
INSERT INTO B VALUES(2);
INSERT INTO B VALUES(3);

SELECT * FROM A;
SELECT * FROM B;

id
-----------
1
2
3

id
-----------
1
2
3

过滤JOIN以防止在JOIN进程期间添加行.

select a.*,b.*
from   A a left join B b 
on     a.id =b.id and a.id=2;

id          id
----------- -----------
1           NULL
2           2
3           NULL

JOIN发生后,将过滤.

select a.*,b.* 
from   A a left join B b 
on     a.id =b.id 
where  a.id=2;

id          id
----------- -----------
2           2

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读