두 경우, 즉 쿼리에서 'RIGHT' 또는 'LEFT' 키워드를 사용하지 않는 경우 MySQL은 INNER JOIN 쿼리로 결과를 반환합니다. RIGHT, LEFT 및 INNER JOIN의 유일한 차이점은 RIGHT 또는 LEFT의 키워드이기 때문입니다. 이해를 돕기 위해 다음 데이터가 있는 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)
이제 RIGHT 키워드가 있는 RIGHT JOIN에 대한 쿼리는 다음과 같을 수 있습니다. -
mysql> SELECT tbl_1.id,tbl_2.id FROM tbl_1 RIGHT JOIN tbl_2 ON tbl_1.name = tbl_2.name; +------+----+ | id | id | +------+----+ | 4 | A | | NULL | B | | NULL | C | | NULL | D | +------+----+ 4 rows in set (0.00 sec)
이제 다음 쿼리에서 RIGHT −
키워드를 사용하지 않습니다.mysql> Select tbl_1.id,tbl_2.id FROM tbl_1 JOIN tbl_2 ON tbl_1.name = tbl_2.name; +----+----+ | id | id | +----+----+ | 4 | A | +----+----+ 1 row in set (0.00 sec)
위의 결과 집합에서 'RIGHT' 키워드를 사용하지 않고 MySQL이 이를 INNER JOIN에 대한 쿼리로 받아 그에 따라 결과를 반환한다는 차이점을 확인할 수 있습니다.
이제 LEFT 키워드가 있는 LEFT JOIN에 대한 쿼리는 다음과 같을 수 있습니다. -
mysql> SELECT tbl_1.id,tbl_2.id FROM tbl_1 LEFT JOIN tbl_2 ON tbl_1.name = tbl_2.name; +----+------+ | id | id | +----+------+ | 1 | NULL | | 2 | NULL | | 3 | NULL | | 4 | A | +----+------+ 4 rows in set (0.02 sec)
이제 다음 쿼리에서 LEFT −
키워드를 사용하지 않습니다.mysql> Select tbl_1.id,tbl_2.id FROM tbl_1 JOIN tbl_2 ON tbl_1.name = tbl_2.name; +----+----+ | id | id | +----+----+ | 4 | A | +----+----+ 1 row in set (0.00 sec)
위의 결과 집합에서 'LEFT' 키워드를 사용하지 않고 MySQL이 이를 INNER JOIN에 대한 쿼리로 받아들이고 그에 따라 결과를 반환한다는 차이점을 확인할 수 있습니다.