【问题标题】:symfony2 sql query to queryBuilder or createQuerysymfony2 sql 查询到 queryBuilder 或 createQuery
【发布时间】:2016-06-22 07:30:56
【问题描述】:

如何在 Symfony2 的查询构建器中编写我的 SQL 查询?

(
 SELECT t2.`year_defence`, 'advisor_id' AS col, t2.advisor_id AS val, COUNT(*) AS total
 FROM projects t2
 GROUP BY t2.`year_defence`, t2.advisor_id
) 
UNION 
(
 SELECT t2.`year_defence`, 'type_id' AS col, t2.type_id AS val, COUNT(*) AS total
 FROM projects t2
 GROUP BY t2.`year_defence`, t2.type_id
)
UNION
(
 SELECT t2.`year_defence`, 'technology_id' AS col, t2.technology_id AS val, COUNT(*) AS total
 FROM projects t2
 GROUP BY t2.`year_defence`, t2.technology_id
)
ORDER BY 1 , 2 , 3;

我尝试过的任何可能性都不起作用。

【问题讨论】:

    标签: php sql symfony union query-builder


    【解决方案1】:

    您可以尝试使用:

    $statement = $this->entityManager->getConnection()->executeQuery($sql);
    $result    = $statement->fetchAll();
    

    如果您只有一个静态查询。

    或者,如果您有用户输入来验证使用:

    $connection = $this->entityManager->getConnection();
    $statement = $connection->prepare("SELECT myvalues FROM mytable WHERE id = :id");
    $statement->bindValue('id', 1);
    $statement->execute();
    $results = $statement->fetchAll();
    

    【讨论】:

    • 您的权利。如果您想拥有实体对象,我建议将这些查询分开并进行部分查询。虽然您确实需要更多查询,但我认为这是完成它的最佳方式。
    【解决方案2】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 2016-04-18
    • 2013-07-12
    • 1970-01-01
    • 2016-06-08
    • 2013-12-31
    • 1970-01-01
    相关资源
    最近更新 更多