MySQL : LEFT JOIN、RIGHT JOIN與JOIN的區別
Table_1:
ID | NAME | AGE |
---|---|---|
1 | 張三 | 11 |
2 | 李四 | 12 |
3 | 王五 | 13 |
Table_2:
ID | NAME | COURSE |
---|---|---|
3 | 張三 | 語文 |
4 | 張三 | 數學 |
5 | 馬六 | 英語 |
1. ID 關聯(LEFT JOIN)
1 | SELECT * FROM Table_1 LEFT JOIN Table_2 ON Table_1.ID = Table_2.ID |
結果:
ID | NAME | AGE | ID(1) | NAME(1) | COURSE |
---|---|---|---|---|---|
1 | 張三 | 11 | (NULL) | (NULL) | (NULL) |
2 | 李四 | 12 | (NULL) | (NULL) | (NULL) |
3 | 王五 | 13 | 3 | 張三 | 語文 |
關聯 Table_1 & Table_2 :
Table_1:
ID | NAME | AGE |
---|---|---|
1 | 張三 | 11 |
2 | 李四 | 12 |
3 | 王五 | 13 |
Table_2:
ID | NAME | COURSE |
---|---|---|
3 | 張三 | 語文 |
4 | 張三 | 數學 |
5 | 馬六 | 英語 |
註 : 以 Table_1(左邊)為主表,查詢與 Table_1 有相同 ID 的資料。
2. ID關聯(RIGHT JOIN)
1 | SELECT * FROM Table_1 RIGHT JOIN Table_2 ON Table_1.ID = Table_2.ID |
結果:
ID | NAME | AGE | ID(1) | NAME(1) | COURSE |
---|---|---|---|---|---|
3 | 王五 | 13 | 3 | 張三 | 語文 |
(NULL) | (NULL) | (NULL) | 4 | 張三 | 數學 |
(NULL) | (NULL) | (NULL) | 5 | 馬六 | 英語 |
關聯 Table_1 & Table_2 :
Table_1:
ID | NAME | AGE |
---|---|---|
1 | 張三 | 11 |
2 | 李四 | 12 |
3 | 王五 | 13 |
Table_2:
ID | NAME | COURSE |
---|---|---|
3 | 張三 | 語文 |
4 | 張三 | 數學 |
5 | 馬六 | 英語 |
註 : 以 Table_2(右邊)為主表,查詢與 Table_2 表有相同 ID 的資料。
3. ID關聯(JOIN)
1 | SELECT * FROM Table_1 JOIN Table_2 ON Table_1.ID = Table_2.ID |
等於
1 | SELECT * FROM Table_2 JOIN Table_1 ON Table_1.ID = Table_2.ID |
結果:
ID | NAME | AGE | ID(1) | NAME(1) | COURSE |
---|---|---|---|---|---|
3 | 王五 | 13 | 3 | 張三 | 語文 |
&
ID | NAME | COURSE | ID(1) | NAME(1) | AGE |
---|---|---|---|---|---|
3 | 張三 | 語文 | 3 | 王五 | 13 |
註 : 查詢兩個有相同 ID 的資料。