العقيدة - مرشح من حيث القيمة الإجمالية الأجنبية

StackOverflow https://stackoverflow.com/questions/1643499

  •  10-07-2019
  •  | 
  •  

سؤال

وكيف يمكنني استخدام نتيجة وظيفة Agregate في مكان في العقيدة؟

وعلى سبيل المثال أريد أن أعرف المستخدم مع أعداد كبيرة سخيفة.

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

وكيف يمكنني الوصول إلى <م> users_phonenumber_count في مكان في DQL؟

هل كانت مفيدة؟

المحلول

وتحتاج إلى استخدام بصعوبات، لا WHERE. أيضا، تحتاج إلى مجموعة من شيء في الواقع في الاستعلام الخاص بك، في هذه الحالة u.name. على افتراض u.name هي فريدة من نوعها - إن لم يكن، تحتاج إلى مجموعة من كلا u.name u.id و

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

نصائح أخرى

وأنا لا أتذكر التفاصيل الدقيقة لكيفية لقد فعلت ذلك، ولكن تذكر أنه اضطر إلى استخدام "بصعوبات"

وهذا هو بسبب الطريقة التي يعمل SQL، وليس على وجه التحديد عقيدة - حيث لا يمكن مقارنة القيم المحسوبة، لديك لاستخدام وجود (أو يمكن أن تفعله WHERE COUNT (شيء) <شيء)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top