1. 程式人生 > 其它 >sql server關聯查詢 on where等學習記錄

sql server關聯查詢 on where等學習記錄

1.首先說一下恆等
恆等我也忘記在哪裡看的了,指的是on 1=1就叫恆等
sql語句:
select ta.ida,tb.idb,tb.ida,tb.idc from ta left join tb on 1=1
on 1=1相當於 將左表(ta)的資料每一條資料 去關聯查詢右表(tb)的每一條資料
表a,表b的資料 表c基本和表a一致

2.正常的關聯查詢(左連線) 每個on後面都加上關聯條件
select * from ta left join
tb on ta.ida=tb.ida left join tc on tc.idc=tb.idc
查詢結果

每個表各自的資料:

因為tb中的idc有4,而tc沒有4,所以查出的表c的資料(存在的)應該有五條,這與查詢資料一致,最後兩行資料,一個是tc無資料顯示為null,另一個是因為tb,tc都沒有資料,所以就顯示為null
所以得出 左連線是以左表為主,然後拿著關聯的鍵,到每個表去匹配資料,沒有資料則為null

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

越是無知的人越是覺得自己無所不知(之前的自己) 越是學習的人越是覺得自己會的太少了(現在的自己) 共勉