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

MySQL에서 조인을 사용하여 데이터 기반 테이블 관계를 어떻게 유지할 수 있습니까?


사실, 때때로 우리는 테이블에서 데이터 중심 관계를 피할 수 있고 그것들을 조인해야 합니다. 조인 가능성을 처리하기 위해 SELECT 목록의 CASE 문을 사용하여 수행할 수 있습니다. 이를 이해하기 위해 다음 데이터가 있는 'Student_Detail'이라는 세 개의 데이터 기반 테이블을 예로 들어보겠습니다.

mysql> Select * from student_detail;
+----+---------+
| Id | Name    |
+----+---------+
| 1  | Harshit |
| 2  | Rahul   |
| 3  | Aarav   |
+----+---------+
3 rows in set (0.00 sec)

이제 'Student_Harshit', 'Student_Rahul', 'Student_Aarav'라는 세 개의 테이블에 각각 Harshit, Rahul 및 Aarav 학생에 대한 설명이 있습니다. 그들은 다음과 같은 데이터를 가지고 있습니다 -

mysql> Select * from Student_Harshit;
+----+-----------+
| Id | Remarks   |
+----+-----------+
| 1  | Excellent |
+----+-----------+
1 row in set (0.00 sec)

mysql> Select * from Student_Rahul;
+----+---------+
| Id | Remarks |
+----+---------+
| 2  | Average |
+----+---------+
1 row in set (0.00 sec)

mysql> Select * from Student_Aarav;
+----+-------------+
| Id | Remarks     |
+----+-------------+
| 3  | Intelligent |
+----+-------------+
1 row in set (0.00 sec)

이제 다음 쿼리가 이러한 데이터 기반 테이블을 처리합니다. −

mysql> Select sd.id, sd.name, CASE name WHEN 'Harshit' THEN H1.Remarks WHEN 'Rahul' THEN R1.Remarks WHEN 'Aarav' THEN A1.Remarks ELSE 'Error' END as REMARKS FROM Student_detail AS sd LEFT JOIN Student_Harshit AS H1 ON sd.id = H1.id LEFT JOIN Student_Rahul AS R1 ON sd.id = R1.id LEFT JOIN Student_Aarav AS A1 on sd.id = A1.id;
+----+---------+-------------+
| id | name    | REMARKS     |
+----+---------+-------------+
| 1  | Harshit | Excellent   |
| 2  | Rahul   | Average     |
| 3  | Aarav   | Intelligent |
+----+---------+-------------+
3 rows in set (0.00 sec)