--create table tab1
--(
--id int,
--size int
--)
--create table tab2
--(
--size int,
--name varchar(10)
--)
--insert into tab1 values(1,10)
--insert into tab1 values(2,20)
--insert into tab1 values(3,30)
--insert into tab2 values(10,'AAA')
--insert into tab2 values(20,'BBB')
--insert into tab2 values(20,'DDD')
--insert into tab2 values(30,'CCC')
--select * from tab1 left join tab2 on (tab1.size = tab2.size) where tab2.name='AAA'
--select * from tab1 left join tab2 on (tab1.size = tab2.size and tab2.name='AAA')
--on和where的區別
--區別:on是對中間結果進行篩選,where是對最終結果篩選。
--執行順序:
--先進行on的過濾, 而后才進行join。
--效率:
--如果是inner join, 放on和放where產生的結果一樣,如果有outer join (left or right), 就有區別了, 因為on生效在先, 已經提前過濾了一部分數據, 而where生效在后.