Doktrin - Yabancı agrega değerine göre filtre

2 Cevap php

nasıl ben Doktrini in Agregate fonksiyonun sonucu kullanabilirsiniz?

Örneğin i saçma numaraları ile çok kullanıcıyı bilmek istiyorum.

SELECT  u.name, COUNT(p.id) AS users_phonenumber_count
FROM    users u

    INNER JOIN phonenumbers p ON p.user_id = u.id
WHERE
    users_phonenumber_count > 10
GROUP BY
    u.id

Nasıl DQL in * users_phonenumber_count * erişebilir?

2 Cevap

Sen SAHİP değil WHERE kullanarak gerekir. Ayrıca, bu durumda u.name de, sizin sorgu aslında bir şeye göre gruplandırmak gerekir. U.name benzersiz varsayarak - değilse, sen u.id ve u.name hem de grup gerekir.

SELECT  u.name, COUNT(*) AS users_phonenumber_count
FROM    users u

    INNER JOIN phonenumbers p ON p.user_id = u.id
GROUP BY
    u.name
HAVING
    count(*) > 10

Ben yaptım nasıl tam ayrıntıları hatırlıyorum, ama o "SAHİP" kullanmak zorunda olduğunu hatırlayamıyorum

Bunun nedeni, SQL, özellikle doktrin değil, işleri yolunda olan - bilgisayarlı değerleri karşılaştırmak, size sahip kullanmak zorunda WHERE (ya da yapabileceğini NEREDE COUNT (bir şey) <şey)