加入时间戳范围

时间:2012-09-15 07:00:13

标签: mysql sql join

我有两张桌子

raw_commits(sha,date,author)

milestones(name,start,end)

其中milestones表包含所有项目里程碑的时间戳范围。

我不确定如何进行JOIN以实现以下目标:

对于每个raw_commits,如果raw_commits.sha, raw_commits.date, raw_commits.author, milestones.name有一个里程碑,则显示NULL,如果它不属于里程碑,则显示milestones,并显示每个里程碑的重复行,如果提交“属于”多个milestones

使用raw_commits.date作为参考,即raw_commits.date >= milestones.start AND raw_commits.date <= milestones.end,显然可以归类为{{1}}。

如何实现所描述的行为?

1 个答案:

答案 0 :(得分:2)

SELECT
  raw_commits.sha,
  raw_commits.author
  raw_commits.date,
  milestones.name
FROM
  raw_commits
LEFT OUTER JOIN
  milestones
ON
  raw_commits.date BETWEEN milestones.start AND milestones.end