Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 쉼표 연산자로 내부 조인(Inner Join) 쿼리 작성하는 방법

쉼표 연산자를 사용하여 내부 조인을 작성하는 것은 두 개의 테이블을 결합하는 가장 기본적인 방법입니다. 일반적으로 INNER JOIN 키워드나 그 동의어인 JOIN을 사용해서도 내부 조인을 작성할 수 있습니다.

내부 조인을 구성하려면 조인 조건이라고 불리는 특정 조인 술어(join-predicate)를 지정해야 하는데, 쉼표 연산자로 내부 조인을 작성할 때는 WHERE 절을 사용하는 것이 조인 조건을 명시하는 유일한 방법입니다.

예제 테이블 준비

이해를 돕기 위해 다음과 같은 데이터를 가진 두 개의 테이블 tbl_1과 tbl_2를 예로 들어보겠습니다.

mysql> Select * from tbl_1;
+----+--------+
| Id | Name   |
+----+--------+
| 1  | Gaurav |
| 2  | Rahul  |
| 3  | Raman  |
| 4  | Aarav  |
+----+--------+
4 rows in set (0.00 sec)

mysql> Select * from tbl_2;
+----+---------+
| Id | Name    |
+----+---------+
| A  | Aarav   |
| B  | Mohan   |
| C  | Jai     |
| D  | Harshit |
+----+---------+
4 rows in set (0.00 sec)

쉼표 연산자를 활용한 내부 조인 쿼리

아래 쿼리는 쉼표 연산자를 사용하여 위 두 테이블을 내부 조인합니다. FROM 절에 두 테이블을 쉼표로 나열하고, WHERE 절에서 양쪽 테이블의 name 컬럼 값이 일치하는 행만 결과로 가져오도록 조인 조건을 지정했습니다.

mysql> Select * FROM tbl_1,tbl_2 WHERE tbl_1.name = tbl_2.name;
+----+-------+----+-------+
| Id | Name  | Id | Name  |
+----+-------+----+-------+
| 4  | Aarav | A  | Aarav |
+----+-------+----+-------+
1 row in set (0.00 sec)

실행 결과를 보면 두 테이블에서 name 값이 'Aarav'로 동일한 행만 반환된 것을 확인할 수 있습니다. 이는 WHERE 절의 조건을 만족하는 교집합 데이터만 출력되는 내부 조인의 기본 동작 방식입니다.

참고 사항

쉼표 연산자 방식은 SQL-92 표준 이전의 오래된 문법으로, 현재는 가독성과 유지보수성을 위해 INNER JOIN ... ON 문법을 사용하는 것이 권장됩니다. 또한 쉼표 연산자 방식은 실수로 WHERE 절에 조인 조건을 누락하면 카티션 곱(Cartesian Product)이 발생하여 의도치 않은 대량의 결과가 생성될 수 있으므로 주의해야 합니다.