結合には以下のように種類がいくつかあります。
- 単純結合
- 等価結合
- 非等価結合
- 外部結合
- 再起結合
今回はこの中で、単純結合のご紹介をします。
まず、以下の二つのテーブルがあるとします。
これら二つを単純結合すると「 x 」の
行数のテーブルが出来上がります。
テーブル1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
mysql> select * from member; +----+----------+------+--------+---------+ | id | name | age | weight | address | +----+----------+------+--------+---------+ | 1 | tanaka | 30 | 57 | 東京 | | 2 | suzuki | 32 | 77 | 東京 | | 3 | nakamura | 33 | 52 | 群馬 | | 4 | miura | 31 | 67 | 埼玉 | | 5 | kimura | 27 | 62 | 茨城 | | 6 | takai | 25 | 63 | 千葉 | | 7 | tadano | 26 | 43 | 千葉 | | 8 | murakami | 35 | 42 | 茨城 | | 9 | kikuchi | 32 | 41 | 茨城 | | 10 | suzuki | 31 | 51 | 茨城 | | 11 | saeki | 29 | 49 | 埼玉 | | 12 | ooyama | 29 | 48 | 埼玉 | | 13 | kamata | 22 | 47 | 埼玉 | | 14 | mizumoto | 35 | 55 | NULL | +----+----------+------+--------+---------+ 14 rows in set (0.00 sec) |
テーブル2
1 2 3 4 5 6 7 8 9 10 11 |
mysql> select * from address; +----+---------+------------+ | id | address | population | +----+---------+------------+ | 1 | 東京 | 13216221 | | 2 | 群馬 | 1992432 | | 3 | 茨城 | 2946194 | | 4 | 埼玉 | 7208122 | | 5 | 千葉 | 6196164 | +----+---------+------------+ 5 rows in set (0.00 sec) |
テーブル1とテーブル2を単純結合してできるテーブル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
mysql> select * from member, address; +----+----------+------+--------+---------+----+---------+------------+ | id | name | age | weight | address | id | address | population | +----+----------+------+--------+---------+----+---------+------------+ | 1 | tanaka | 30 | 57 | 東京 | 1 | 東京 | 13216221 | | 1 | tanaka | 30 | 57 | 東京 | 2 | 群馬 | 1992432 | | 1 | tanaka | 30 | 57 | 東京 | 3 | 茨城 | 2946194 | | 1 | tanaka | 30 | 57 | 東京 | 4 | 埼玉 | 7208122 | | 1 | tanaka | 30 | 57 | 東京 | 5 | 千葉 | 6196164 | | 2 | suzuki | 32 | 77 | 東京 | 1 | 東京 | 13216221 | | 2 | suzuki | 32 | 77 | 東京 | 2 | 群馬 | 1992432 | | 2 | suzuki | 32 | 77 | 東京 | 3 | 茨城 | 2946194 | | 2 | suzuki | 32 | 77 | 東京 | 4 | 埼玉 | 7208122 | | 2 | suzuki | 32 | 77 | 東京 | 5 | 千葉 | 6196164 | | 3 | nakamura | 33 | 52 | 群馬 | 1 | 東京 | 13216221 | | 3 | nakamura | 33 | 52 | 群馬 | 2 | 群馬 | 1992432 | | 3 | nakamura | 33 | 52 | 群馬 | 3 | 茨城 | 2946194 | | 3 | nakamura | 33 | 52 | 群馬 | 4 | 埼玉 | 7208122 | | 3 | nakamura | 33 | 52 | 群馬 | 5 | 千葉 | 6196164 | | 4 | miura | 31 | 67 | 埼玉 | 1 | 東京 | 13216221 | | 4 | miura | 31 | 67 | 埼玉 | 2 | 群馬 | 1992432 | | 4 | miura | 31 | 67 | 埼玉 | 3 | 茨城 | 2946194 | | 4 | miura | 31 | 67 | 埼玉 | 4 | 埼玉 | 7208122 | | 4 | miura | 31 | 67 | 埼玉 | 5 | 千葉 | 6196164 | | 5 | kimura | 27 | 62 | 茨城 | 1 | 東京 | 13216221 | | 5 | kimura | 27 | 62 | 茨城 | 2 | 群馬 | 1992432 | | 5 | kimura | 27 | 62 | 茨城 | 3 | 茨城 | 2946194 | | 5 | kimura | 27 | 62 | 茨城 | 4 | 埼玉 | 7208122 | | 5 | kimura | 27 | 62 | 茨城 | 5 | 千葉 | 6196164 | | 6 | takai | 25 | 63 | 千葉 | 1 | 東京 | 13216221 | | 6 | takai | 25 | 63 | 千葉 | 2 | 群馬 | 1992432 | | 6 | takai | 25 | 63 | 千葉 | 3 | 茨城 | 2946194 | | 6 | takai | 25 | 63 | 千葉 | 4 | 埼玉 | 7208122 | | 6 | takai | 25 | 63 | 千葉 | 5 | 千葉 | 6196164 | | 7 | tadano | 26 | 43 | 千葉 | 1 | 東京 | 13216221 | | 7 | tadano | 26 | 43 | 千葉 | 2 | 群馬 | 1992432 | | 7 | tadano | 26 | 43 | 千葉 | 3 | 茨城 | 2946194 | | 7 | tadano | 26 | 43 | 千葉 | 4 | 埼玉 | 7208122 | | 7 | tadano | 26 | 43 | 千葉 | 5 | 千葉 | 6196164 | | 8 | murakami | 35 | 42 | 茨城 | 1 | 東京 | 13216221 | | 8 | murakami | 35 | 42 | 茨城 | 2 | 群馬 | 1992432 | | 8 | murakami | 35 | 42 | 茨城 | 3 | 茨城 | 2946194 | | 8 | murakami | 35 | 42 | 茨城 | 4 | 埼玉 | 7208122 | | 8 | murakami | 35 | 42 | 茨城 | 5 | 千葉 | 6196164 | | 9 | kikuchi | 32 | 41 | 茨城 | 1 | 東京 | 13216221 | | 9 | kikuchi | 32 | 41 | 茨城 | 2 | 群馬 | 1992432 | | 9 | kikuchi | 32 | 41 | 茨城 | 3 | 茨城 | 2946194 | | 9 | kikuchi | 32 | 41 | 茨城 | 4 | 埼玉 | 7208122 | | 9 | kikuchi | 32 | 41 | 茨城 | 5 | 千葉 | 6196164 | | 10 | suzuki | 31 | 51 | 茨城 | 1 | 東京 | 13216221 | | 10 | suzuki | 31 | 51 | 茨城 | 2 | 群馬 | 1992432 | | 10 | suzuki | 31 | 51 | 茨城 | 3 | 茨城 | 2946194 | | 10 | suzuki | 31 | 51 | 茨城 | 4 | 埼玉 | 7208122 | | 10 | suzuki | 31 | 51 | 茨城 | 5 | 千葉 | 6196164 | | 11 | saeki | 29 | 49 | 埼玉 | 1 | 東京 | 13216221 | | 11 | saeki | 29 | 49 | 埼玉 | 2 | 群馬 | 1992432 | | 11 | saeki | 29 | 49 | 埼玉 | 3 | 茨城 | 2946194 | | 11 | saeki | 29 | 49 | 埼玉 | 4 | 埼玉 | 7208122 | | 11 | saeki | 29 | 49 | 埼玉 | 5 | 千葉 | 6196164 | | 12 | ooyama | 29 | 48 | 埼玉 | 1 | 東京 | 13216221 | | 12 | ooyama | 29 | 48 | 埼玉 | 2 | 群馬 | 1992432 | | 12 | ooyama | 29 | 48 | 埼玉 | 3 | 茨城 | 2946194 | | 12 | ooyama | 29 | 48 | 埼玉 | 4 | 埼玉 | 7208122 | | 12 | ooyama | 29 | 48 | 埼玉 | 5 | 千葉 | 6196164 | | 13 | kamata | 22 | 47 | 埼玉 | 1 | 東京 | 13216221 | | 13 | kamata | 22 | 47 | 埼玉 | 2 | 群馬 | 1992432 | | 13 | kamata | 22 | 47 | 埼玉 | 3 | 茨城 | 2946194 | | 13 | kamata | 22 | 47 | 埼玉 | 4 | 埼玉 | 7208122 | | 13 | kamata | 22 | 47 | 埼玉 | 5 | 千葉 | 6196164 | | 14 | mizumoto | 35 | 55 | NULL | 1 | 東京 | 13216221 | | 14 | mizumoto | 35 | 55 | NULL | 2 | 群馬 | 1992432 | | 14 | mizumoto | 35 | 55 | NULL | 3 | 茨城 | 2946194 | | 14 | mizumoto | 35 | 55 | NULL | 4 | 埼玉 | 7208122 | | 14 | mizumoto | 35 | 55 | NULL | 5 | 千葉 | 6196164 | +----+----------+------+--------+---------+----+---------+------------+ 70 rows in set (0.00 sec) |
/