34,575
社区成员
发帖
与我相关
我的任务
分享
--SQL1
SELECT * FROM A LEFT JOIN B ON A.ID = B.ID
WHERE B.ID>100 AND A.ID>100
--SQL2
SELECT * FROM A
LEFT JOIN
( SELECT * FROM B WHERE B.ID>100) TB
ON A.ID = TB.ID
WHERE A.ID>100
create table #a (
id int)
go
create table #b (
id int)
go
insert #a select 101 union all select 102
insert #b select 102 union all select 103
--SQL1
SELECT * FROM #a A LEFT JOIN #b B ON A.ID = B.ID
WHERE B.ID>100 AND A.ID>100
--SQL2
SELECT * FROM #a A
LEFT JOIN
( SELECT * FROM #b B WHERE B.ID>100) TB
ON A.ID = TB.ID
WHERE A.ID>100
--SQL3
SELECT * FROM #a A LEFT JOIN #b B ON A.ID = B.ID
WHERE A.ID>100
--结果
id id
----------- -----------
102 102
(1 行受影响)
id id
----------- -----------
101 NULL
102 102
(2 行受影响)
id id
----------- -----------
101 NULL
102 102
(2 行受影响)
--SQL1
SELECT * FROM A LEFT JOIN B ON A.ID = B.ID
WHERE B.ID>100 AND A.ID>100
--相当于:
SELECT * FROM A JOIN B ON A.ID = B.ID
WHERE B.ID>100 AND A.ID>100
--SQL1
SELECT * FROM A LEFT JOIN B ON A.ID = B.ID
WHERE A.ID>100