مساعدة في SQL - إغلاق تلقائي / تكرار النتائج / فلتر الأسبوع

مرحباً، لقد أنشأت استعلامًا (في الأسفل) يعرض الموضوع والفئة وعدد الأصوات على الموضوع، وما إذا كان مغلقًا، ومتى تم إنشاؤه والمستخدم الذي أنشأه. إذا احتجت إلى مزيد من المعلومات، فلا تتردد في إخباري.

لدي بعض المشكلات والأسئلة التي أود الحصول على بعض المساعدة أو التوجيه بشأنها نظرًا لأنني جديد في SQL.

  1. عند تشغيل هذا الاستعلام، يعرض نفس الموضوع مئات المرات. كيف يمكنني إصلاح هذا؟

  2. هل هناك أي طريقة للحصول على وقت إغلاق الموضوع تلقائيًا وعرضه؟

  3. أريد فقط عرض الموضوعات خلال أسبوع. لكن دالة date_trunc التي أضفتها تعرض بعض العناصر قبل أسبوع بقليل؟

SELECT
    t.id as topic_id,
    t.category_id,
    dvc.votes_count,
    t.closed,
    t.created_at,
    t.user_id
FROM topics t, discourse_voting_topic_vote_count dvc
WHERE t.closed = true
    AND t.category_id = 20
    AND dvc.votes_count >= 1
    AND t.created_at <= date_trunc('week', current_date)::date
    AND t.created_at >= date_trunc('week', current_date)::date - 7

جرب إضافة هذا بعد السطر WHERE.

 AND t.id = dvc.topic_id

لم أختبره، لكن أعتقد أن هذه هي مشكلتك الكبيرة (تحل مشكلة “نفس الموضوع”)

إعجاب واحد (1)

رائع! شكراً جاي، لقد نجح الأمر :smiley:

هل تعرف كيف يمكنني التعامل مع المشكلات الأخرى؟

تخميني بخصوص (3) هو أنها مشكلة في المنطقة الزمنية، و/أو أنها تستند إلى الثانية التي تقوم فيها بتشغيل البرنامج النصي وتريد منتصف الليل السابق أو التالي. (لست متأكدًا تمامًا من كيفية إصلاح أي من هذين الأمرين على الفور).

لست متأكدًا مما إذا كان هذا سيساعد ولكنه يمكنك المحاولة

للحصول على وقت إغلاقهم، ستحتاج إلى إضافة شيء ما إلى جزء SELECT (والذي يمكنك استنتاجه من الحقول المتاحة) وتغيير FROM مثل

       FROM topics t, discourse_voting_topic_vote_count dvc, topic_timers tt

وإضافة هذا بعد WHERE

    AND tt.topic_id=t.id

(تمامًا مثل الذي أضفته من قبل).

إعجاب واحد (1)

شكرا لك مرة أخرى يا جاي، لقد أنقذت حياتي (:

إعجاب واحد (1)

رائع! هل نجح ذلك؟ هذا مذهل. سعيد لأنه ساعد.

إعجابَين (2)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.