我不太了解甲骨文。我最近不得不将用 PHP/MySQL 制作的应用程序迁移到 PHP/Oracle。当我使用 Doctrine2 时,我认为这不会那么难,但我在这里遇到了这个查询。这是 Doctrine2 生成的 SQL:
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 查询生成器中做到这一点!