0
我試圖在Zend 1.12中得到以下查詢的相同結果。Zend中的複雜查詢1.12
SELECT te.id_usuario, u.nome, te.id_texto, t.titulo
FROM usuarios u, tex_turmas_alunos ta, tex_testes te, tex_textos t, publicacoes p
WHERE te.id_usuario=u.id
and u.id=ta.id_aluno and ta.id_turma=10
and te.id_texto=t.id
and te.acertou = 'sim'
and ta.ativo='sim'
and te.id_texto=p.id_texto and p.id_turma=ta.id_turma
GROUP BY te.id_usuario, t.id
ORDER BY u.nome, t.titulo
這是我的代碼:
1:
$select =
$this -> getAdapter()
-> select()
-> from(array('u' => "usuarios"), array("nome" => "u.nome"))
-> join(array('ta' => 'tex_turmas_alunos'), "ta.ativo = 'sim' AND ud.id = ta.id_aluno", null)
-> join(array('te' => 'tex_testes'), "te.acertou = 'sim'", array('te.id_texto', 'te.id_usuario'))
-> join(array('t' => 'tex_textos'), 'te.id_texto = t.id', array('t.titulo'))
-> join(array('p' => 'publicacoes'), 'p.id_turma = ta.id_turma', null)
-> where('ta.id_turma = '10')
-> group(array('te.id_usuario', 't.id'))
-> order(array('u.nome', 't.titulo'));
return $this ->getAdapter()->fetchAll ($select);
2:
$sqlString =
"SELECT te.id_usuario, u.nome, te.id_texto, t.titulo
FROM usuarios u, tex_turmas_alunos ta, tex_testes te, tex_textos t, publicacoes p
WHERE te.id_usuario=u.id
and u.id=ta.id_aluno and ta.id_turma= ?
and te.id_texto=t.id
and te.acertou = 'sim'
and ta.ativo='sim'
and te.id_texto=p.id_texto and p.id_turma=ta.id_turma
GROUP BY te.id_usuario, t.id
ORDER BY u.nome, t.titulo";
$sql = $this->getAdapter()->query($sqlString, '10');
所述第一查詢的結果是:
SELECT `u`.`nome`, `te`.`id_texto`, `te`.`id_usuario`, `t`.`titulo` FROM `usuarios` AS `u` INNER JOIN `tex_turmas_alunos` AS `ta` ON ta.ativo = 'sim' AND ta.id_aluno = u.id INNER JOIN `tex_testes` AS `te` ON te.acertou = 'sim' INNER JOIN `tex_textos` AS `t` ON te.id_texto = t.id INNER JOIN `publicacoes` AS `p` ON p.id_turma = ta.id_turma WHERE (ta.id_turma = '11') GROUP BY `te`.`id_usuario`, `t`.`id` ORDER BY `u`.`nome` ASC, `t`.`titulo` ASC
此結果不正確的返回。我的查詢有什麼問題?
- 錯誤的結果是這樣的:
nome id_texto id_usuario titulo
Another person 182 116 t2
Another person 183 18 t3
Another person 183 14 t3
Another person 183 24 t3
Another person 183 33 t3
Another person 183 19 t3
Another person 183 10 t3
,我希望得到的結果:
id_usuario nome id_texto titulo
108 Person 1 131 Text A
108 Person 1 132 Text B
108 Person 1 166 Text C
108 Person 1 304 Text D
你懂的性差異?他們是兩個完全不同的結果。
謝謝
您是否收到任何返回的錯誤?也許活躍他們? –
在第一個查詢中,沒有錯誤,但不顯示相同的結果。在第二個,我有這個錯誤:PHP可捕捉的致命錯誤:Zend_Db_Statement_Pdo類的對象無法轉換爲字符串 – user3319937
你能提供第一個查詢的結果和預期的結果嗎? –