on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄,而where條件是在臨時表生成好後,再對臨時表進行過濾的條件。
而且除了stu_id=1的那條記錄,class表中字段不滿足過濾條件的記錄(即使被關聯到了)全是NULL,所以on後面的語句最好只寫兩個表相關聯的語句,並不能做單方面的過濾。
也可以這麽簡單的理解,以坐標為主,先查詢出左表的全部記錄,然後關聯右表,將符合條件的記錄的數據填充進查詢出來的結果。
right join 和 full join 具有相同的特性,但是inner join不同,它可以在on 那裏做過濾處理,也就是說放在on後面和where後面作用是壹樣的。
希望對妳有幫助