Join 語法一共有三種,分別是 inner join、left join、right join。 先來簡述一下 Join 的用法。 SELECT * FROM table1 (LEFT/RIGHT) JOIN table2 ON table1.somecolum = table2.somecolum (and/or) condition2…. 前段為一般的 SELECT 語法,顯示 table1 的資訊。 JOIN table2 的意思是:要在顯示 table1 資訊的同事,把 table2 的資料也一起融入並顯示出來。等一下會介紹 join 的三種方式。 ON 之後為 JOIN 的條件。 JOIN: 也就是 INNER JOIN,該 JOIN 的用法是,只會顯示出符合 ON 條件的資料。也就是兩 table (table1 and table2) ,交集的資料。 舉例: 若 A 表格有三筆資料分別是 a_id 為 1,2,3。 若 B 表格有兩筆資料分別是 b_id 為 1,2,4。 SELECT * FROM A JOIN B ON A.a_id = B.b_id; 在執行 JOIN 合併表格之後顯示的資料會是以下。 因為合併列印的關係,兩個表格的所有資料被合併成一個表格列印出來。 而因為是 INNER JOIN 的關係,所以只印出兩表格符合條間的交集資料。 a_id b_id 1 1 2 2 LEFT JOIN: 該 JOIN 的用法是,除了顯示符合 ON 條件的資料外,還會顯示 table1 (FROM 後方所接的 table) 的所有資料。 舉例: 延續上方 INNER JOIN 時的 A, B 表格。 SELECT * FROM A LEFT JOIN B ON A.a_id = B.b_id; 執行結果如下。 可看出 A 表格的資料儘管在 a_id = 3 時找不到符合 a_id = b_id 的對象,但是該筆資料仍然被顯示出來,但對應的 b_id 因為沒有符合條件的對象而保留為 NULL。 a_id b_id 1 1 2 2
留言
張貼留言