SQL 指令 (join)
SQL 指令 (join)
http://blog.blueshop.com.tw/pili9141/articles/52281.aspx
| 1 | 表a |
| 2 | |
| 3 | 欄1 欄2 |
| 4 | ---------------- |
| 5 | aa 1 |
| 6 | bb 2 |
| 7 | cc 9 |
| 8 | |
| 9 | 表b |
| 10 | |
| 11 | 欄a 欄b |
| 12 | ---------------- |
| 13 | 1 X |
| 14 | 2 Y |
| 15 | 3 Z |
| 16 | |
| 17 | inner join |
| 18 | |
| 19 | select 欄1,欄2,欄b from 表a,表b where 表a.欄2 = 表b.欄a |
| 20 | |
| 21 | --◎ 查表a、b的欄1、欄2、欄b的資料,以表a的欄2和表b的欄a做inner join |
| 22 | --◎ 資料表關聯後,資料皆存在才會被查取 |
| 23 | --◎ 結果如下: |
| 24 | |
| 25 | 欄1 欄2 欄b |
| 26 | ------------------------- |
| 27 | aa 1 X |
| 28 | bb 2 Y |
| 29 | |
| 30 | outer join |
| 31 | |
| 32 | 1. select 欄1,欄2,欄b from 表a,表b where 表a.欄2 = 表b.欄a(+); |
| 33 | |
| 34 | --◎ 查表a、b的欄1、欄2、欄b的資料,以表a的欄2和表b的欄a做outer join |
| 35 | -- 表b中的欄a資料可以不存在 |
| 36 | --◎ 資料表關聯後,被outer join的欄位無資料,也會被查取 |
| 37 | --◎ 若 表a.欄2 = 表b.欄a(+) 改成 表b.欄a(+) = 表a.欄2 之結果亦相同 |
| 38 | --◎ 結果如下: |
| 39 | |
| 40 | 欄1 欄2 欄b |
| 41 | ------------------------- |
| 42 | aa 1 X |
| 43 | bb 2 Y |
| 44 | cc 9 |
| 45 | |
| 46 | 2. select 欄1,欄2,欄b from 表a,表b where 表a.欄2 = 表b.欄a(+) and 表b.欄a is null; |
| 47 | |
| 48 | --◎ 查表a、b的欄1、欄2、欄b的資料,以表a的欄2和表b的欄a做outer join |
| 49 | -- 找出存在表a但不存在表b的資料 |
| 50 | --◎ 結果如下: |
| 51 | |
| 52 | 欄1 欄2 欄b |
| 53 | ------------------------- |
| 54 | cc 9 |
浙公网安备 33010602011771号