我們首先來看我們的兩個表: table1:  table2:
 table2: 
在這里,LEFT JOIN(內連接,或等值連接):取得左表(table1)完全記錄,即是右表(table2)并無對應匹配記錄。 例如,如果table2中的age1的值有一個值是11,table1的值中age1的值也有11,那么就查詢出來;但是table2中如果有值2134,table1中的age1并不存在2134,那么這個值就不會查詢出來: 再假設,如果table1中有age1的值2,3,4但是table2中沒有一個age1的值是2,3,4那么table1中就會顯示出來2,3,4;換句話說,使用left join,最開始的表,左表會全部顯示出來,右表則會顯示左表中有的值。
SELECT * FROM table1 LEFT  JOIN table2 ON table1.age1 = table2.age1;在這里使用 結果如下:  那么RIGHT JOIN 正好相反:與 LEFT JOIN 相反,取得右表(table2)完全記錄,即是左表(table1)并無匹配對應記錄。 SELECT * FROM table1 RIGHT   JOIN table2 ON table1.age1 = table2.age1;
 那么RIGHT JOIN 正好相反:與 LEFT JOIN 相反,取得右表(table2)完全記錄,即是左表(table1)并無匹配對應記錄。 SELECT * FROM table1 RIGHT   JOIN table2 ON table1.age1 = table2.age1;  1、 on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄。 2、where條件是在臨時表生成好后,再對臨時表進行過濾的條件。這時已經沒有left join的含義(必須返回左邊表的記錄)了,條件不為真的就全部過濾掉。
 1、 on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄。 2、where條件是在臨時表生成好后,再對臨時表進行過濾的條件。這時已經沒有left join的含義(必須返回左邊表的記錄)了,條件不為真的就全部過濾掉。
新聞熱點
疑難解答