1

我正在尝试在第 5 个 DQL 子查询中重用定义名称“comments”-表 Comments (AppBundle:Comments entity),但出现错误:"Error: 'comments' is already defined."

这是 DQL 查询:

  SELECT employer.name AS employer_name, employer.position AS employer_position, employer.id AS employer_id,

                (SELECT company.company_name FROM Application\Sonata\UserBundle\Entity\User company WHERE company.id = employer.company) AS company_name,
                (SELECT city.name FROM AppBundle:City city WHERE city.id = employer.city) AS city_name,
                (SELECT MAX(comments.id) FROM AppBundle:Comments comments WHERE comments.employer = employer_id) AS comment_id,
                (SELECT commenttype.name FROM AppBundle:CommentTypes commenttype WHERE commenttype.id = comment_id) AS comment_name,
                (SELECT COUNT(comments.id) FROM AppBundle:Comments comments WHERE comments.employer = employer_id) AS comment_count

                FROM AppBundle:Employer employer

如何在不重新定义的情况下重用定义?

我也试过这个:

SELECT employer.name AS employer_name, employer.position AS employer_position, employer.id AS employer_id,

                (SELECT company.company_name FROM Application\Sonata\UserBundle\Entity\User company WHERE company.id = employer.company) AS company_name,
                (SELECT city.name FROM AppBundle:City city WHERE city.id = employer.city) AS city_name,
                (SELECT MAX(comments.id) FROM AppBundle:Comments comments WHERE comments.employer = employer_id) AS comment_id,
                (SELECT commenttype.name FROM AppBundle:CommentTypes commenttype WHERE commenttype.id = comment_id) AS comment_name,
                (SELECT COUNT(comments.id) FROM comments WHERE comments.employer = employer_id) AS comment_count

                FROM AppBundle:Employer employer

,但现在我得到“未定义类'评论'。” 错误。

4

1 回答 1

0

在第一个查询中似乎有重复的别名。

尝试这个:

选择雇主名称作为雇主名称,雇主职位作为雇主职位,雇主身份作为雇主身份,

            (SELECT company.company_name FROM Application\Sonata\UserBundle\Entity\User company WHERE company.id = employer.company) AS company_name,
            (SELECT city.name FROM AppBundle:City city WHERE city.id = employer.city) AS city_name,
            (SELECT MAX(comments.id) FROM AppBundle:Comments comments WHERE comments.employer = employer_id) AS comment_id,
            (SELECT commenttype.name FROM AppBundle:CommentTypes commenttype WHERE commenttype.id = comment_id) AS comment_name,
            (SELECT COUNT(aComments.id) FROM AppBundle:Comments aComments WHERE aComments.employer = employer_id) AS comment_count

            FROM AppBundle:Employer employer

希望这有帮助

于 2015-12-23T07:19:03.540 回答