Database MySQL 뿐만 아니라 Oracle에서 테이블간의 조인(Join)을 하다보면 다음과 같은 중복문제를 경험해 보게 된다.

테이블 A
mysql> select * from a;
+------+
| id   |
+------+
| 1    |
| 2    |
| 3    |
| 4    |
+------+
4 rows in set (0.00 sec)


테이블 B
mysql> select * from b;
+------+
| id   |
+------+
| 3    |
| 4    |
| 5    |
| 6    |
| 10   |
| 2    |
| 2    |
+------+
7 rows in set (0.00 sec)


결과
mysql> select a.id, b.id from a join b on a.id=b.id;
+------+------+
| id   | id   |
+------+------+
| 3    | 3    |
| 4    | 4    |
| 2    | 2    |
| 2    | 2    |
+------+------+
4 rows in set (0.00 sec)

문제발생의 원인은 조인하고자 하는 id들이 Unique 하지 않기 때문이다.
A 테이블은 Unique하게 존재하나, B 테이블의 경우 Unique하지 않는다.

+ Recent posts