2012-09-15 221 views
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

明顯通過使用raw_commits.date作爲參考即raw_commits.date >= milestones.start AND raw_commits.date <= milestones.end來完成對milestones的分類。

如何實現所描述的行爲?

回答

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