0

我有两张桌子,第一张

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 时从table1table2添加值但是如果日期超出范围,我只想从table1获取值

假设我们今天的日期为 2013-04-16,预期结果是

edd 6
tom 6
emi 3

我使用学说和 Symfony2

4

1 回答 1

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 

对于mysql。

你没有写足够多的关于你的实体来为你提供特定于 Doctrine 的代码,但你可以用它来运行它

$entityManager->createQuery($sql)->execute(array($dateParam,$dateParam))```.
于 2013-04-16T16:24:35.617 回答