这个问题是我在此处提出的问题(并收到了有效的答案)的后续问题。
我怎样才能把它翻译成 DQL?JOINs 上的文档让我有点困惑。
编辑:
我将 Doctrine 与 Symfony2 一起使用,并具有以下实体:
问题:
/**
* @ORM\Entity
* @ORM\Table(name="Question", indexes={@ORM\Index(name="id_idx", columns={"id"})})
*/
class Question
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string question
*
* @ORM\Column(name="question", type="string", length=255)
*/
private $question;
/**
* @var array scores
*
* @ORM\OneToMany(targetEntity="Score", mappedBy="question")
*/
private $scores;
// getters and setters
}
分数:
/**
* @ORM\Entity
* @ORM\Table(name="Score", indexes={@ORM\Index(name="id_idx", columns={"id"})})
*/
class Score
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var integer $question
*
* @ORM\ManyToOne(targetEntity="Question", inversedBy="scores")
* @ORM\JoinColumn(name="question_id", referencedColumnName="id")
*/
private $question;
/**
* @var float score
*
* @ORM\Column(name="score", type="float")
*/
private $score;
// getters and setters
}
我使用了以下查询:
$query = $em->createQuery('SELECT q AS question, AVG(s.score) AS average FROM CMSBundle:Question q JOIN q.scores s GROUP BY q.id ORDER BY q.id ASC');
$questions = $query->getResult();
但是,对于该查询,$questions 包含 0 个元素。我也没有收到任何错误(至少,PhpStorm 在其调试器中找不到任何错误)。
由于缺乏关于为什么我从我的查询中几乎没有得到任何反馈的反馈,我有点不知所措。任何帮助,将不胜感激。