SQL中join連線後面的on與where的區別

2021-10-07 03:47:34 字數 1430 閱讀 7744

兩張測試表,資料如下

'語文'

;

select

*from t_class a

inner

join t_student b

on a.id = b.class_id

where a.name=

'語文'

;

內連線下,不管a.name='語文』這個條件是在on還是在where中,查詢結果都是相同的

第一段指令碼

第二段指令碼

select

*from t_class a

left

join t_student b

on a.id = b.class_id and a.name=

'語文'

第三段指令碼

select

*from t_class a

left

join t_student b

on a.id = b.class_id

where a.name=

'語文'

第一段第二段**,在外連線中,on中的條件不會對主表a產生影響(總查詢數量不變),只會對b表的結果產生影響(第二段**中「李四」、「王五」被剔除了);

從第三段**可以看出,要想對主表a起作用,篩選條件需要加在where裡。

SQL中join操作後面的on與where的區別

join關鍵字的作用是將多個表按一定的條件聯合起來,從而可以實現從多個表中獲取資料 在join後面可以接on條件和where條件,在這裡我主要就是說這兩者之間的差別 建立兩張簡單的用來測試的表並新增資料,如下所示,一張表名為id name,另一張表名為id age 首先看看不新增條件 t2.age ...

sql中的join連線

今天簡單的了解一下資料庫中的sql連線,具體的講解可以參考 資料庫原理與應用 這裡從實際的使用角度來說,首先準備測試資料,表test1,test2 建立表test1 create table test1 name varchar2 20 age int 建立表test2 create table t...

SQL 中如何去掉decimal欄位後面的0

當我們需要將 decimal 欄位的值轉為 varchar 型時,常常會遇到乙個問題 如果此字段有4位小數,那小數點後面都會自動被0補齊.例如 18.0000 或 12.0300.轉為 varchar 時後面的0仍然被保留.t sql如下 select top 3 a.el qty4 cast a....