原则 - 计算来自不同表的记录


Doctrine - count records from different tables

我想从三个不相关的不同表中获取计数。 为此我正在使用此SQL查询。

SELECT 
    (SELECT COUNT(DISTINCT id) FROM user) AS userCount, 
    (SELECT COUNT(DISTINCT id) FROM item) AS itemCount, 
    (SELECT COUNT(DISTINCT id) FROM sub_category) as categoryCount;

是否可以对上述查询使用 DQL?还是必须使用 rawSQL 查询?

我正在使用教义 1.2.4

经过挖掘,我自己找到了解决方案。 即直接使用 PDO 连接实例。

$q = Doctrine_Manager::getInstance()->getCurrentConnection();
$result = $q->execute(' SELECT 
    (SELECT COUNT(DISTINCT id) FROM user) AS userCount, 
    (SELECT COUNT(DISTINCT id) FROM item) AS itemCount, 
    (SELECT COUNT(DISTINCT id) FROM sub_category) as categoryCount;'
);
$result->fetchAll(PDO::FETCH_ASSOC);

虽然到目前为止这对我有用。 我仍然想知道是否可以将其转换为 DQL。 我尝试了不同的语法和方法,如Doctrine的RAW SQL,但无法让它工作。