2012-04-07 34 views
2

我想从其中不涉及三个不同的表中提取数数的记录。为此,我正在使用此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

+0

学说版本? – xdazz 2012-04-07 15:50:55

+0

Doctrine版本1.2.4 – 2012-04-07 19:12:04

回答

1

挖掘周围后,我发现我自己的解决方案。即直接使用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,但无法使其工作。