如何从一个表中获取所有列,只从另一个具有ID的表中获取一列? - MySql

时间:2016-09-02 14:34:49

标签: mysql sql

我有一个包含大约9列的表员工。 ' ID,名称等。'

我还有另一张表' onCall'包含3列' employee_id,department_id和rank'

我想要的是检索在该部门注册为OnCall员工的员工数据

我尝试这样来获取员工数据:

Select * from employee where id in (SELECT employee_id FROM onCall where department_id = 3)

但是像这样我不知道onCall员工的等级是什么,他是注册为主要还是备份,如何合并来自onCall表的排名列,但仅限于所选员工的id

我尝试加入他们但我收到语法错误

任何解决方法?

2 个答案:

答案 0 :(得分:1)

这可以帮助您使用表别名

所需的列
Select e.*, o.* from employee e 
LEFT JOIN onCall o ON o.employee_id = e.id
    AND o.department_id = 3

答案 1 :(得分:1)

这需要内部联接

select EMP.*, OC.*
from EMPLOYEE EMP
inner join ONCALL OC
on OC.EMPLOYEE_ID = EMP.ID
where OC.DEPARTMENT = 3