2013-10-18 3 views
0

쿼리에 대한 도움말을 사용할 수 있습니다. 나는 두 개의 테이블을 가지고 있습니다 :두 테이블 간의 MySQL 쿼리

employee = { 
    id, 
    manager, 

    data1, 
} 


hrm = { 
id, 
employee, 

data2, 
}; 

쿼리. Tom을 매니저로 둔 직원들의 모든 기록을 갖고 싶습니다.

SELECT hrm.employee, hrm.data2 FROM hrm WHERE AND EXISTS 
(SELECT id from employee WHERE manager = 'TOM') 

이 나에게

Jan, data2 
Piet, data2 

대를 제공합니다! 하지만 나는 더 원해. :-) 나는 또한 직원으로부터 관련 data1 열을 갖고 싶어.

Jan, data2, data1 
Piet, data2, data1 

도움을 주시면 감사하겠습니다.

+0

쿼리가 올바르게 작동합니까? Tom이 매니저로있는 직원이 있으면'hrm'을 모두 반환하는 것처럼 보입니다. – Jim

+0

아니요. 귀하의 의견을 보내 주셔서 감사합니다. 알았어. – user1726792

답변

2
SELECT hrm.employee, hrm.data2, employee.data1 
FROM hrm 
INNER JOIN employee ON (hrm.employee = employee.id) 
WHERE employee.manager == "TOM"; 

hrm은 관리자가 "TOM"인 직원과 연관됩니다. 이 경우 hrmemployeehrm.employeeemployee.id 필드와 연결되어 있다고 가정합니다.

+0

+1 대체 된 EXISTS에 대해서는 MySQL의 옵티 마이저에 의해 상관 된 하위 쿼리가있는 IN 문으로 다시 작성 될 수 있기 때문에 MySQL의 대형 테이블에서 잘못 조정되는 것으로 알려져 있습니다 –