1

我有两张桌子

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

如何实现所描述的行为?

4

1 回答 1

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
于 2012-09-15T07:06:55.377 回答