I가 다음과 같은 쿼리를 계산 GROUPBY :교리 다중 행 교리
$q = Doctrine_Query::create()
->select("q.id, q.user_id, count(ua.id) as quantity")
->from("question q")
->leftJoin("q.Answers a")
->leftJoin("a.UserAnswers ua")
->groupBy("ua.user_id");
생성 된 SQL은 다음과 같습니다
SELECT q.id AS q__id, q.user_id AS q__user_id, COUNT(u.id) AS u__0 FROM question q LEFT JOIN answer a ON q.id = a.question_id LEFT JOIN user_answer u ON a.id = u.answer_id GROUP BY u.user_id
와 MySQL이 쿼리의 결과 것은 같은 것입니다 :
+-------+------------+------+
+ q__id + q__user_id + u__0 +
+-------+------------+------+
+ 1 + 1 + 0 +
+-------+------------+------+
+ 26 + 6 + 2 +
+-------+------------+------+
+ 26 + 6 + 1 +
+-------+------------+------+
Doctrine을 사용하면 "u__0"열 값을 얻을 수있는 방법이 있습니까?
내가 시도 :$questions = $q->execute();
echo (count($questions));
하지만 결과는 2 행 (안 3)가 있습니다.
"u__0"열 값을 어떻게 얻을 수 있습니까? (0, 2, 1) Doctrine을 사용합니까?
내 질문은 사용입니다 doctrine 나는 단지 2 개의 결과를 얻습니다. (평이한 SQL에서는 3 개의 결과를 얻습니다.) Doctrine은 마지막 결과 두 개를 하나씩 "그룹화"한다고 생각합니다. – Pipe
@Pipe oh 나는 본다! 죄송합니다. 오해, 대답을 업데이트했습니다. 어쩌면 교리에 별명을 사용하도록 강요하면 잘 될 것입니다. 그건 그렇고, 당신은 선택에 ua.user_id를 추가해야한다고 생각합니다. – j0k
nop이면 오류가 발생합니다. 별칭 'a'와 'ua'사이의 조인 왼쪽에 적어도 기본 키 필드가 선택되어 있어야합니다. – Pipe