네, 가능합니다. MySQL에서는 FROM 절에 여러 테이블을 쉼표(,)로 구분하여 나열하는 것만으로 두 테이블을 한 번의 SELECT 쿼리로 조회할 수 있습니다. 다음은 기본 문법입니다.
select * from yourTableName1,yourTableName2;
예제로 살펴보기
1. 첫 번째 테이블 생성
먼저 DemoTable1이라는 이름의 테이블을 생성해 보겠습니다.
mysql> create table DemoTable1
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY
-> );
Query OK, 0 rows affected (0.54 sec)
INSERT 명령어를 사용해 테이블에 레코드를 삽입합니다.
mysql> insert into DemoTable1 values(),(),();
Query OK, 3 rows affected (0.14 sec)
Records: 3 Duplicates: 0 Warnings: 0
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select * from DemoTable1;
실행 결과는 다음과 같습니다.
+----+
| Id |
+----+
| 1 |
| 2 |
| 3 |
+----+
3 rows in set (0.00 sec)
2. 두 번째 테이블 생성
이번에는 FirstName 컬럼을 가진 두 번째 테이블을 생성합니다.
mysql> create table DemoTable2
-> (
-> FirstName varchar(10)
-> );
Query OK, 0 rows affected (0.58 sec)
마찬가지로 INSERT 명령어를 사용해 데이터를 삽입합니다.
mysql> insert into DemoTable2 values('Chris'),('David'),('Sam');
Query OK, 3 rows affected (0.10 sec)
Records: 3 Duplicates: 0 Warnings: 0SELECT 문으로 저장된 데이터를 확인해 보겠습니다.
mysql> select * from DemoTable2;
실행 결과는 다음과 같습니다.
+-----------+
| FirstName |
+-----------+
| Chris |
| David |
| Sam |
+-----------+
3 rows in set (0.00 sec)
두 테이블을 한 번에 조회하기
이제 두 테이블에 대해 SELECT 쿼리를 수행해 보겠습니다. FROM 절에 두 테이블을 쉼표로 구분하여 나열하고, 필요한 컬럼을 지정하면 됩니다.
mysql> select Id,FirstName from DemoTable1,DemoTable2;
실행 결과는 다음과 같습니다.
+----+-----------+
| Id | FirstName |
+----+-----------+
| 1 | Chris |
| 2 | Chris |
| 3 | Chris |
| 1 | David |
| 2 | David |
| 3 | David |
| 1 | Sam |
| 2 | Sam |
| 3 | Sam |
+----+-----------+
9 rows in set (0.00 sec)
주의할 점: 카테시안 곱(Cartesian Product)
위 결과를 보면 첫 번째 테이블의 각 행이 두 번째 테이블의 모든 행과 조합되어 총 9개(3×3)의 행이 반환된 것을 확인할 수 있습니다. 이는 조인 조건 없이 여러 테이블을 함께 조회할 때 발생하는 카테시안 곱(Cross Join) 현상입니다. 따라서 실무에서는 WHERE 절이나 JOIN 구문을 사용해 두 테이블을 연결하는 조건을 명시적으로 지정하는 것이 좋습니다.