DataBase

[SQL] Inner Join에서 조인 조건이 같을 시, 테이블 순서의 영향이 있을까?

범데이 2023. 7. 10. 00:17

1. 개요

SQL에서 Inner Join을 수행할 때, 조인 조건이 동일한 경우 테이블의 순서를 바꿔도 쿼리 결과는 동일하다.

Inner Join은 두 개 이상의 테이블을 공통된 열을 기준으로 결합하는 연산이다. 조인 조건이 동일하다면 어떤 테이블을 먼저 명시하더라도 결과는 동일하게 나타난다.

 

 

 

2. 예제

예를 들어, A, B, C라는 세 개의 테이블이 있다고 가정해보자. 각각의 테이블은 다음과 같은 구조를 가지고 있다.

 

테이블 A:

id | name   | age
---+--------+-----
1  | John   | 30
2  | Sarah  | 25

 

테이블 B:

id | address     | city
---+-------------+-------
1  | 123 Main St | NY
2  | 456 Elm St  | LA

 

테이블 C:

id | phone
---+---------
1  | 555-1234
2  | 555-5678

 

 

Inner Join을 사용하여 세 개의 테이블을 조인하는 쿼리를 작성해보자.

 

1) A와 B를 먼저 조인하고, 그 결과와 C를 조인하는 경우:

SELECT A.id, A.name, A.age, B.address, B.city, C.phone
FROM A
INNER JOIN B ON A.id = B.id
INNER JOIN C ON A.id = C.id;

 

 

2) C와 A를 먼저 조인하고, 그 결과와 B를 조인하는 경우:

SELECT B.id, B.address, B.city, A.name, A.age, C.phone
FROM C
INNER JOIN A ON C.id = A.id
INNER JOIN B ON C.id = B.id;

 

 

 

3. 결론

위 두 쿼리에 대한 동일한 결과는 다음과 같다.

id | address     | city | name  | age | phone
---+-------------+------+-------+-----+---------
1  | 123 Main St | NY   | John  | 30  | 555-1234
2  | 456 Elm St  | LA   | Sarah | 25  | 555-5678

위 두 쿼리는 조인 조건이 동일하며, 테이블의 순서만 다르다. 그러나 결과는 동일한 데이터를 반환한다. 따라서 테이블의 순서는 Inner Join에서 결과에 영향을 미치지 않는다.

 

 

 

이를 통해 SQL Inner Join을 사용할 때, 조인 조건이 동일하다면 FROM 절에 나오는 테이블의 순서를 바꿔도 쿼리 결과는 동일하다는 사실을 확인할 수 있다. 이러한 특성은 SQL 쿼리 작성 시 테이블 순서를 유연하게 선택할 수 있음을 의미하며, 쿼리의 가독성과 유지보수성을 향상시킬 수 있다.

 

 

반응형