2012-05-08 9 views
1

Doctrineでsubselectによって返された行を数えたいと思います。私が持っている副選択は次のとおりです。SQLでDoctrineでsub SELECTにCOUNTを実行したい

SELECT e FROM \comments\Entities\Event e 
WHERE e.type = 'addComment' 
HAVING TIMESTAMPDIFF(MINUTE, e.commentedOnPublished, e.created) < 60) 

私が所望の結果を達成したい:

SELECT COUNT(*) FROM (
    SELECT e.* FROM square_events as e 
    WHERE e.type = 'addComment' 
    HAVING TIMESTAMPDIFF(minute, e.commentedOnPublished, e.created) < 60 
) temp 

誰もが、これは教義で達成することができる方法を知っていますか?

答えて

2

私はすでに、これが当社のシステムの選手の一人は、私がされていた指摘した後、私がなってしまったものですとにかく、この千他のソリューションをしようとしただろうと確信しています馬鹿!当時の

SELECT COUNT(e) as eventCount FROM comments\Entities\Event e 
WHERE e.type = 'addComment' 
AND TIMESTAMPDIFF(MINUTE, e.commentedOnPublished, e.created) < 60 

一つ

...

1

私は副選択が必要な理由はありません。次はうまく動作するはずです:

$query = $em->createQuery(" 
    SELECT COUNT(e.id) FROM \comments\Entities\Event e 
    WHERE e.type = 'addComment' 
    HAVING TIMESTAMPDIFF(MINUTE, e.commentedOnPublished, e.created) < 60)" 
); 

$count = $query->getSingleScalarResult(); 
+1

おかげで、@timdev私は少し錆びてきた年のカップルのためのSQLを使用していないが判明しました。 – nomasprime