0
我必須做一個SELECT,我將通過列idcontrato來區分行。我做得很好用SQL ...ZF2改變我的表達式並返回錯誤(Postgre,Distinct)
SELECT DISTINCT ON (idcontrato) *
FROM cad_emprestimo
WHERE numerobeneficio = '1135346515';
但是,當我試圖做同樣的ZF2:
$emprestimos = (new EmprestimoTable())->select(function(Select $select) use($cliente) {
$select->columns([new Expression('DISTINCT ON (idcontrato) *')]);
$select->where->equalTo('numerobeneficio', $cliente->getBeneficio()->getNumero());
});
我得到了以下錯誤:
SQLSTATE[42601]: Syntax error: 7 ERRO: erro de sintaxe em ou próximo a "AS"
LINE 1: SELECT DISTINCT ON (idcontrato) * AS Expression1 FROM "cad_e...
^
這' AS Expression1'由ZF2添加...我不知道如何刪除它。
如果我的回答是正確的,那麼標記它是正確的,以幫助其他人面臨同樣的問題。樂意效勞。 – Jayson
我已經試過這個解決方案,但它只是重新排列colum idcontrato的結果分組。我需要隱藏重複的值,並且DISTINCT ON只顯示一行,如果已經顯示定義的列值。 'DISTINCT ON(idcontrato)* FROM ...'正是我所需要的。 反正謝謝你。 – hamboldt