我有两个桌子,第一个
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
我只想在开始 =日期时从table1和table2添加值
但是,如果日期超出范围,我只想从表1中获取值
假设我们今天的日期为2013-04-16,则预期结果为
edd 6
tom 6
emi 3
我使用主义和Symfony2
最佳答案
该解决方案可能取决于您的数据库引擎,因为不同的引擎提供了不同的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
对于mysql。
您没有为实体提供足够的文字来为您提供特定于Doctrine的代码,但是您可以使用
$entityManager->createQuery($sql)->execute(array($dateParam,$dateParam))```.
关于mysql - 创建在条件为true时将两个值相加或仅获得一个值的查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16041812/