Я не знаю, оракул много. Недавно мне пришлось перенести приложение, созданное в PHP/MySQL, в PHP/Oracle. Поскольку я использовал Doctrine2, я думал, что это будет не так сложно, но я застрял в этом вопросе здесь. Это SQL генерируется Doctrine2:Oracle doctrine2 Группа от
SELECT a.*
FROM
(SELECT b0_.id AS id0,
b0_.created AS created1,
b1_.businessName AS businessName2,
b1_.isVerified AS isVerified3,
COUNT(b2_.id) AS sclr4
FROM br_merchants b1_
INNER JOIN br_user b0_
ON b1_.id = b0_.id
LEFT JOIN br_campaigns b2_
ON b1_.id = b2_.merchant_id
GROUP BY b0_.id,
b0_.created,
b1_.businessName,
b1_.isVerified
ORDER BY b2_.created DESC
) a
WHERE ROWNUM <= 10
И я получаю ORA-00979: not a GROUP BY expression
. Я где-то читал, что мне нужно указать все столбцы, которые не используются агрегированными функционалами в операторе group by. Я сделал это, но результат тот же.
Может ли кто-нибудь сказать мне, где я ошибаюсь! Благодаря!
Редактировать: Я сделал ORDER BY 2 DESC
, и он работал в SQL Developer, но построитель запросов не принимает 2. Так как это сделать в Doctrine2 querybuilder!
ahhh, как я мог этого не видеть! Я сделал это 2, потому что в предложении select я мог видеть его второй столбец, но в построителе запросов doctrine я заказывал другой псевдоним (который был присоединен). Большое спасибо :) – Broncha