按日期范围加入两个表

时间:2016-12-09 07:39:14

标签: mysql date join left-join

我有两个表form4Fingerprint System.exe结构如下:

org_years table

year_days table

我希望获得该组织所有日期的列表以及他们所属的组织年度ID。

org_years

日期范围不必总是1月1日至31日。这只是一个例子。这些可以是一年中任何时间的日期范围。

日期范围也不会重叠。此外,PHP应用程序逻辑将确保日期范围中没有间隙。一天总是在日期范围内。

2 个答案:

答案 0 :(得分:1)

LEFT JOINyear_days之间org_years进行for_date,检查year_days每个记录的org_years年度范围。请注意,我考虑到id日历表中某一天可能不属于某个范围的可能性,在这种情况下,我将-1显示为SELECT COALESCE(t2.id, -1) AS org_years_id, t1.for_date FROM year_days t1 LEFT JOIN org_years t2 ON t1.for_date BETWEEN t2.year_start_on AND t2.year_end_on

AutoItX3 auto = new AutoItX3();
void texbox1_KeyDown(object sender, KeyEventArgs e) {
    if (e.KeyCode == Keys.Space)
        auto.Send("{NUMPAD7}");
}

答案 1 :(得分:0)

请使用以下加入条件

select t1.*,t2.* from Table1 t1 left join Table2 t2 ON 
DATE_FORMAT(t1.year_start_on,'Y') = t2.for_date