我有两个表,雇员和薪水:
employee salary
|---------|---------| |--------|----------|----------|
| ID | Name | | E_ID | Amount | Status |
|-------------------| |------------------------------|
| 1 | Matt | | 1 | 100 | Past |
| 2 | John | | 1 | 120 | Current |
| 3 | David | | 2 | 150 | Current |
|---------|---------| |--------|----------|----------|
并且我需要他们之间的联接,该联接将返回我的雇员工资信息:如果不在薪水表中,则返回null;如果重复,则返回一个值(该值标记为“当前”,与“过去”相对)。
在此示例中,我要求的回报是:
|---------|---------------|---------------|
| ID | Name | Amount |
|---------|---------------|---------------|
| 1 | Matt | 120 |
| 2 | John | 150 |
| 3 | David | NULL |
|---------|---------------|---------------|
我最初尝试了
WHERE employee.ID=salary.E_ID
但这会让大卫离开。
我尝试了左联接
...
employee
LEFT JOIN salary ON employee.ID=salary.E_ID
但这两次显示了Matt,如果我添加where子句
...
employee
LEFT JOIN salary ON employee.ID=salary.E_ID
WHERE salary.status='Current'
大卫再次离开。
不知道如何进行。
谢谢您的帮助。
LEFT JOIN salary
ON employee.ID = salary.E_ID
AND salary.status = 'Current'
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句