ID를 가진 Primary Key 열과 사람을 참조하는 동일한 테이블에 대한 참조 인 supervisorID 열이있는 employee라는 테이블이 있습니다. supervisorID를 ID 대신 참조하는 사람 이름으로 표시하려고합니다.동일한 테이블의 ID 대신 Referenced Name 표시
employee 테이블에서 *를 선택하지만 SupervisorID를 같은 테이블의 개인 이름으로 참조하고 싶습니다. 같은
ID를 가진 Primary Key 열과 사람을 참조하는 동일한 테이블에 대한 참조 인 supervisorID 열이있는 employee라는 테이블이 있습니다. supervisorID를 ID 대신 참조하는 사람 이름으로 표시하려고합니다.동일한 테이블의 ID 대신 Referenced Name 표시
employee 테이블에서 *를 선택하지만 SupervisorID를 같은 테이블의 개인 이름으로 참조하고 싶습니다. 같은
SELECT e.ID, e.name AS Employee, s.name AS Supervisor
FROM employee e
INNER JOIN employee s
ON s.ID = e.supervisorID
ORDER BY e.ID;
이 테스트하는 방법에 대한 자세한 색상 인 ID를 기반으로 :
mysql> CREATE TABLE employee (ID INT NOT NULL AUTO_INCREMENT, supervisorID INT NOT NULL DEFAULT '1', name VARCHAR(48) NOT NULL, PRIMARY KEY (ID));
Query OK, 0 rows affected (0.01 sec)
mysql> INSERT INTO employee VALUES (1, 1, "The Boss"), (2,1, "Some Manager"), (3,2, "Some Worker"), (4,2, "Another Worker");
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> SELECT e.ID, e.name AS Employee, s.name AS Supervisor
FROM employee e INNER JOIN employee s
ON s.ID = e.supervisorID ORDER BY e.ID;
+----+----------------+--------------+
| ID | Employee | Supervisor |
+----+----------------+--------------+
| 1 | The Boss | The Boss |
| 2 | Some Manager | The Boss |
| 3 | Some Worker | Some Manager |
| 4 | Another Worker | Some Manager |
+----+----------------+--------------+
4 rows in set (0.01 sec)
mysql>
을
뭔가 :
SELECT e.name as 'employee name', supervisors.name as 'supervisor name'
FROM employee e
INNER JOIN employee supervisors ON e.ID = supervisors.supervisorID
가 수행합니다 자체 조인
select e.*, s.name
from
employee e
inner join employee s
on e.supervisorid = s.id