对于不存在或存在的子行,LEFT JOIN复杂化,选择具有特定值

时间:2016-10-29 07:42:07

标签: mysql

抱歉我的英语不好。我有两个表:tblemployees(employeeid)和tbloffices:officeid,employeecode,activeposition

基本上,tbloffices包含员工曾经工作过的公司的办事处列表。他/她只能在一个办公室工作一段时间(因此,每个员工只能在一个办公室工作一次)。有些员工可以在tbloffices上记录,但目前没有活跃的办公室。有些员工可能根本没有tbloffies的记录(例如等待重新安置)。

我的查询需求是:返回employeeid和activeposition = 1(如果存在)。否则,返回最新位置。如果不存在记录,则当然返回NULL:

我尝试了以下查询:

SELECT employeeid, officeid, activeposition 
  FROM tblemployees 
  LEFT 
  JOIN tbloffices 
    ON(tbloffices.employeecode = tblemployees.employeeid) 
 GROUP 
    BY employeeid

该查询适用于tbloffices中没有引用的行。我如何以我想要的方式为每位员工返回一条记录?我已经尝试过了:

(officeid is NULL OR activeposition=1)

但对于有记录但没有活跃职位的员工来说却失败了。

0 个答案:

没有答案