sql on和where的區別

2021-08-20 21:52:11 字數 611 閱讀 3618

1 inner join 時查詢出來的結果相同

select 

a.id as channel_id,

a.channel_name, 

b.op_month,

b.living_count  as living_count,

b.working_count  as working_count

from 

channel_info a

inner join 

st_people_mm b

oncast(a.id as text) = b.channel_id

where 

a.parent_channel_id = 465201548

and a.show_type = 'v'

and  b.op_month = 201707

2 在使用left jion時,on和where條件的區別如下:

1、 on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄。

2、where條件是在臨時表生成好後,再對臨時表進行過濾的條件。這時已經沒有left join的含義(必須返回左邊表的記錄)了,條件不為真的就全部過濾掉。

sql on和where條件的使用

使用join進行關聯查詢時,我們有可以使用on作為條件也可以使用where作為條件。但是兩者是不同的。sql執行的順序on是在join之前執行where是在前面兩者之後執行。我們以乙個案例分析。上面的sql我們對查詢條件s id有限制,但是這個限制卻看似沒有起作用。起不了作用是不能的,不可能不起作用...

on和where的區別

資料庫在通過連線兩張或多張表來返回記錄時,都會生成一張中間的臨時表,然後再將這張臨時表返回給使用者。在使用left jion時,on和where條件的區別如下 1 on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄。2 where條件是在臨時表生成好後,再對臨時表...

on和where的區別

資料庫在通過連線兩張或多張表來返回記錄時,都會生成一張中間的臨時表,然後再將這張臨時表返回給使用者。在使用left jion時,on和where條件的區別如下 1 on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄。2 where條件是在臨時表生成好後,再對臨時表...