簡體   English   中英

使用LEFT JOIN和COUNT進行DQL查詢

[英]DQL Query with LEFT JOIN and COUNT

我正在一個具有兩個具有多對多ORM連接的實體的項目(Symfony2)。 現在,我對這個DQL查詢非常生氣:

SELECT p, COUNT(s.id) AS countSup FROM AapFrontendBundle:Paper p LEFT JOIN p.supervisors s WHERE (countSup = 0) GROUP BY p.id

與SQL輸出:

SELECT p0_.id AS id0,
p0_.title AS title1,
p0_.description AS description2,
p0_.research_questions AS research_questions3,
p0_.basic_literature AS basic_literature4,
p0_.student AS student5, p0_.status AS status6,
p0_.category AS category7,
p0_.type AS type8,
p0_.hash AS hash9,
COUNT(u1_.id) AS sclr10,
p0_.insertBy AS insertBy11

FROM paper p0_
LEFT JOIN supervisors s2_
 ON p0_.id = s2_.paperId
LEFT JOIN user u1_
 ON u1_.id = s2_.userId

WHERE (sclr10 = 0) GROUP BY p0_.id

並得到錯誤信息

Column not found: Unknown column 'sclr10' in 'where clause' 

表“主管”用於文件和用戶之間的多對多關系。 基本上,我想在紙庫中使用此查詢來查找所有沒有鏈接用戶作為主管的紙實體。

您可以使用GROUP BY / HAVING組合:

SELECT ...

FROM paper p0_
LEFT JOIN supervisors s2_
 ON p0_.id = s2_.paperId
LEFT JOIN user u1_
 ON u1_.id = s2_.userId

GROUP BY p0_.id
HAVING COUNT(u1_.id) = 0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM