我有一张桌子:
DATE ENGINEERS
----------------------
2014-03-06 6
2014-03-10 7
当工程师人数发生变化时,我会注册。例如,在这个例子中,我有6个工程师,但在3月10日,我又雇用了一个,所以从那时起我有7个工程师。
我有另一张每天都有约会的桌子
DATE APPOINTMENTS
-------------------------
2014-03-06 4
2014-03-07 5
2014-03-10 5
2014-03-11 6
我怎样才能看到这样的景象,它结合了每天的预约和工程师人数?
DATE APPOINTMENTS ENGINEERS
--------------------------------------
2014-03-06 4 6
2014-03-07 5 6
2014-03-10 5 7
2014-03-11 6 7
发布于 2014-03-06 16:41:17
我能做的就是:
SELECT t2.at, t2.appointments, (@n := IFNULL(t1.engineers, @n)) FROM t2
LEFT JOIN (
SELECT t.at, t1.engineers
FROM t1
JOIN t2 t ON t1.at = t.at
) t1 ON t1.at = t2.at;
我相信有更好的东西在那里,因为不可能需要报复的JOIN
,但我找不到它。
如果工程师表中没有相应的条目,它实际上使用一个sql变量来获得最后一个值。
不要忘记运行SET @n = 0;
。
相应的琴。
https://stackoverflow.com/questions/22229892
复制相似问题