如何将此SQL查询转换为DQL?

时间:2012-07-05 19:51:08

标签: sql doctrine-orm

我在尝试将此SQL查询转换为DQL时遇到了很多困难(我使用的是Symfony2)。

SELECT d.* FROM Document d JOIN DocumentType dt ON dt.id = d.document_type_id WHERE (d.dateFinal - INTERVAL dt.renewal SECOND) > NOW();"

非常感谢!

1 个答案:

答案 0 :(得分:1)

  • 您需要使用DocumentDocumentType类的字段,而不是数据库字段。

  • join是通过命名文档的association field完成的(类似d.documenttype

  • 对于那些MySQL日期函数:至少就我所知,你需要编写custom DQL functions。在该链接后面有一个INTERVAL函数的示例。这可能是您希望执行本机SQL查询的地方。

SELECT d 
FROM MyProject\Model\Document d
    JOIN d.documenttype
WHERE [...your own DQL functions here...]