【发布时间】:2017-07-19 02:31:07
【问题描述】:
我基本上在数据库中有 2 个表,还有一个日期表,我认为我需要将它们连接在一起才能达到预期的效果。
美食
date | foos
------------------
2016-01-01 2
2016-01-02 3
2016-01-03 4
条形
date | bars
------------------
2016-01-02 9
2016-01-03 8
2016-01-04 7
日期
dates
----------
2016-01-01
2016-01-02
2016-01-03
2016-01-04
...
想要的返回值
date | bars | foos
-------------------------
2016-01-01 Null 2
2016-01-02 9 3
2016-01-03 8 4
2016-01-04 7 Null
我目前正在做的是选择我的日期表,然后左加入 foos 到日期,然后左加入条到日期。
问题是这给了我以下结果
date | bars | foos
-------------------------
2016-01-01 Null 2
2016-01-02 9 3
2016-01-03 8 4
2016-01-04 7 Null
2016-01-05 Null Null
2016-01-06 Null Null
2016-01-07 Null Null
...
如果 bar 和 foos 都为空,我不希望返回日期。我可以让它以这种方式呈现,但我不确定这是最有效的选择方式,即:
where (bars is not null or foos is not null)
【问题讨论】:
-
那么您的实际问题是什么?在我看来,您的最后一行代码就是解决方案。
-
我想我想问一下这是否是执行此操作的最有效方法
-
如果你试一下,会不会出现性能问题?通常最好在确实存在问题时修复性能,如果不是,则不必修复它。
-
你正在做的很好......你也可以使用子查询来达到同样的效果......但是性能总是取决于表和数据的大小......