我有两个桌子,第一个

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

===============>>#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))```.

  ask by konadrian translate from so

未解决问题?本站智能推荐:

1回复

在Doctrine中使用IS TRUE sql语句

假设我有一个SQL查询: 效果很好: IS TRUE语句将(c.name IN ("Alex","John")) OR c.name IS NULL)表达式(c.name IN ("Alex","John")) OR c.name IS NULL)单个表达式。 但是问题是Doctr
3回复

原则查询以LIMIT查找MySQL中的结果总数

我正在尝试应用LIMIT时获取针对特定查询找到的总行数。 我在PHP / MySQL中成功找到了答案,但是我无法在Zend / Doctrine中转换逻辑。 我正在使用Doctrine 2.3 / Zend 1.12。 我不想使用两个不同的查询来找到结果: PHP代码:
1回复

我们是否需要清除Doctrine2中2个查询之间的查询生成器?

我面临的情况是,“ D2查询”构建器针对2个不同的请求返回两次第一个请求的结果。 我正在做以下两个查询: 第一个应该返回Deena-仅执行此查询时可以正常工作 第二个应该返回Obiwan-仅执行此查询时可以正常工作 但是,当一个接一个地执行2个查询时(在我的代码中与这里
1回复

查询日期和限制(DQL中的可选)

我在MySQL数据库中有一些复杂的查询。 我有图像上的关系: 查询参数:id_category,日期,时间我想要的是获取ServicePoints: 来自精选类别 在选定的日期和时间访问量少于ServiceCategory中的限制 按ServicePoint I
2回复

在Doctrine2查询构建器中链接orX

我必须在添加where子句之后,将OR表达式动态添加到getListQueryBuilder返回的查询生成器where 。 我找不到任何合适的方式来做到这一点,我才刚刚开始学习Doctrine。 我如何“链接”给定数量的orX并将其添加到我的构建器中?
2回复

Symfony2-如何在一种理论中以一种形式将值插入两个不同的表中?

我敢肯定这个问题已经被问过了,但是我发现很难找到一个与我的确切问题相关的解决方案,因此我希望有人可以帮助我。 基本上,我有两个表,一个称为“ pet”,另一个称为“ customer_pet”。 这两个表是链接在一起的,因此我可以将宠物分配给特定的人(客户)。 但是我发现,如果将客户I
1回复

如何使学说不创建一个总是真实的场景?

我正在尝试使用Doctrine比较日期时间值。 我有一个教义查询,看起来像这样: ...,它正在创建如下所示的SQL: 教义将返回所有记录,包括早于我指定的日期时间的记录。 从某种意义上讲,这是有道理的,因为Doctrine似乎正在建立一个涉及我要进行的时间戳比较的“总是
1回复

如果where子句是零的整数,为什么SQL查询返回一个值?

我有一个mysql字段类型,它的名称是代码,类型是int(11),我使用以下原则dql: 但是,无论我以$this->username传递的任何值,整数或字符串,它仍然会找到一条代码字段值为0的记录。为什么会发生这种情况? 我可能要添加的代码字段是mysql中的UNIQUE键。
1回复

原则2-加入的实体仍然是代理,并在请求后生成两个查询

此代码生成两个查询,而不是一个。 为什么? 获得$news实体后, category属性仍然是Doctrine代理类( Application\\Proxies\\__CG__\\Model\\News\\Category )。 \\Model\\News\\Category实例仅在
1回复

Symfony2 +主义:使用条件语句选择查询

我想做类似的事情: 但是不起作用。 错误是: 目标是选择类型并在查询中进行翻译。 谢谢!