2013-10-18 114 views
0

我可以对查询使用一些帮助。我有两个表格:两个表之间的MySQL查询

employee = { 
    id, 
    manager, 

    data1, 
} 


hrm = { 
id, 
employee, 

data2, 
}; 

查询。我喜欢拥有汤姆担任经理的员工的所有人力资源记录。

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

查询你有绝对的工作吗?看起来如果有任何员工以汤姆为经理,它将返回所有'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 s与一个经理“TOM”的员工关联。这假设hrmemployeehrm.employeeemployee.id字段相关联。

+0

对于被替换的EXISTS,+1已知可以在MySQL的大型表上严重缩放,因为它可以被MySQL优化器重写为带有相关子查询的IN语句 –