我正在嘗試計算使用HIS: 為查詢返回的不同ID數 $query = $repo->createQueryBuilder('prov') ->select('c.id') ->innerJoin('prov.products', 'prod') ->innerJoin('prod.customerItems', 'ci') ->innerJoin('ci.customer', 'c') ->where('prov.id = :brand') ->setParameter('brand', $brand) ->countDistinct('c.id') ->getQuery(); 我收到此錯誤: Attempted to call method "countDistinct" on class "DoctrineORMQueryBuilder" [...] 我也試過 $query = $repo->createQueryBuilder('prov') ->select('c.id') ->innerJoin('prov.products', 'prod') ->innerJoin('prod.customerItems', 'ci') ->innerJoin('ci.customer', 'c') ->where('prov.id = :brand') ->setParameter('brand', $brand) ->expr()->countDistinct('c.id') ->getQuery(); 導致此錯誤的原因: Error: Call to a member function getQuery() on a non-object in 我找不到任何其他指示,說明如何與documentation 不同地執行此操作 countDistinct是Expr類的方法,COUNT DISTINCT需要在SELECT語句中: $qb = $repo->createQueryBuilder('prov'); $query = $qb ->select($qb->expr()->countDistinct('c.id')) ->innerJoin('prov.products', 'prod') ->innerJoin('prod.customerItems', 'ci') ->innerJoin('ci.customer', 'c') ->where('prov.id = :brand') ->setParameter('brand', $brand) ->getQuery(); 應該行得通。 或者干脆: $query = $repo->createQueryBuilder('prov') ->select('COUNT(DISTINCT c.id)') ->innerJoin('prov.products', 'prod') ->innerJoin('prod.customerItems', 'ci') ->innerJoin('ci.customer', 'c') ->where('prov.id = :brand') ->setParameter('brand', $brand) ->getQuery(); |
免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!
掃一掃,關注站長網微信