我有两张桌子,第一张
Table1
ID Name Value start end fk_table
1 edd 3 2013-03-25 2013-05-25 1
2 tom 3 2013-03-25 2013-05-25 1
3 emi 3 2013-11-25 2013-25-25 1
第二张表
Table2
ID VALUE
1 3
我想仅在start< = Date AND t.end> = Date时添加来自 table1 和 table2 的值 但如果日期超出范围,我只想从 table1
中获取值假设我们今天的日期为2013-04-16,期望结果为
edd 6
tom 6
emi 3
我使用doctrine和Symfony2
答案 0 :(得分:1)
解决方案可能依赖于您的数据库引擎,因为不同的引擎提供不同的SQL扩展。你会用
SELECT Table1.Name, Table1.Value+IF(Table1.start<=? and Table1.end>=?,Table2.VALUE,0)
FROM Table1
INNER JOIN Table2 ON Table1.fk_table=Table2.ID
for mysql。
您还没有充分了解您的实体为您提供特定于Doctrine的代码,但您可以使用
运行此代码$entityManager->createQuery($sql)->execute(array($dateParam,$dateParam))```.