【发布时间】:2018-06-28 04:36:21
【问题描述】:
所以例如我有两个表
Person Table
ID : Name
1 : Bob
2 : Jane
3 : Mike
4 : John
5: Mary
然后我也有(当前实际上是一个整数,但我使用文本使其更具可读性):
Job Table
ID : Name : PersonID : JobStatus
1 : Plumber : 1 : current
2 : Doctor : 2 : past
3 : Driver : 2 : current
4 : Cook : 3 : current
5: Programmer : 5 : past
我想加入这两个表,这样我就可以得到每个人的列表,但我只想用左连接包括当前的工作。换句话说,我希望结果是:
Bob : Plumber : current
Jane : Driver : current
Mike : Cook : current
John : :
Mary : :
如何通过加入来做到这一点。我试着做:
SELECT
person.name, job.name, job.status
FROM
person
LEFT JOIN
job ON person.id=job.person.id
但问题是,在这种情况下,我会看到 Jane 的两个条目,一个是她过去的 Doctor 工作以及她的新工作 Driver。如果我添加一个 where 子句,例如:
WHERE job.status='current'
然后它从列表中删除 John 和 Mary。
如何编写一个显示所有人员但仅包含当前工作的联接?
【问题讨论】:
-
小子,简是不是被大大降职了……从医生到司机?发生了什么?!
标签: mysql sql join jdbc left-join