Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

RIGHT JOIN 또는 LEFT JOIN에 대한 쿼리를 작성하는 동안 'RIGHT' 또는 'LEFT' 키워드를 사용하지 않으면 MySQL은 무엇을 반환합니까?


두 경우, 즉 쿼리에서 '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에 대한 쿼리로 받아들이고 그에 따라 결과를 반환한다는 차이점을 확인할 수 있습니다.