2015-12-20 50 views
1

我想重用定義名稱「評論」 - 表點評:在第五DQL子查詢(的appbundle評論實體),但我得到的錯誤:"Error: 'comments' is already defined."DQL子查詢 - 已經定義

這裏是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 

,但現在我得到「類‘意見’沒有定義」。錯誤。

回答

0

在第一個查詢中似乎有重複的別名。

試試這個:

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(aComments.id) FROM AppBundle:Comments aComments WHERE aComments.employer = employer_id) AS comment_count 

      FROM AppBundle:Employer employer 

希望這有助於