【发布时间】:2014-09-14 16:03:50
【问题描述】:
我有这两张表:
Person:
+----+-------+
| ID | name |
+----+-------+
| 1 | John |
| 2 | Frank |
+----+-------+
Position:
+----+---------+----------+------------+
| ID | name | personID | startDate |
+----+---------+----------+------------+
| 1 | Cashier | 1 | 2013-01-01 |
| 2 | Manager | 1 | 2013-04-23 |
| 3 | Cashier | 2 | 2014-02-01 |
+----+---------+----------+------------+
Position 表跟踪一个人所持有的各种职位。
如何创建一个显示每个人及其当前职位的列表(该职位的开始日期是最新的)?本质上我需要限制Position 表的JOIN 只返回一个结果。
我尝试了以下代码。
SELECT p.id, h.positionID FROM person p JOIN position h ON p.id = h.personID
【问题讨论】:
-
LIMITing an SQL JOIN的可能重复
-
你有没有试过任何代码?
-
@JamesHunt 这似乎要求相反,限制桌子的左侧。我想限制右边。
-
@Gunaseelan 除了正常的加入,我没有太多东西。我搞砸了子查询,但一直碰壁。
SELECT p.id, h.positionID FROM person p JOIN position h ON p.id = h.personID