में शामिल हों और गिनें मेरे पास एक MySQL कमांड है और मुझे DQL में समतुल्य नहीं मिल रहा है। मैं सबसे अधिक टिप्पणी पोस्ट सूची लाने की कोशिश कर रहा हूँ।DQL
SELECT posts.id, COUNT(comments.id) AS num
FROM posts
LEFT JOIN comments ON (posts.id = comments.post_id)
GROUP BY posts.id
यहाँ परिणाम है:: यहाँ MySQL आदेश है
id num
1 8
2 9
3 17
4 7
5 6
6 20
7 7
8 10
9 14
10 7
DQL में, यह होना चाहिए:
SELECT post, COUNT(comment.id) AS num
FROM Entity\Post post
LEFT JOIN post.comments comment
GROUP BY post.id
लेकिन इस देता है:
id num
1 50
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 0
मुझे समझ में नहीं आता कि 50 कहां से आता है 2 परिणामों के बीच एक अंतर क्यों है। क्या आप मुझे बता सकते हैं कि इसे सिद्धांत में कैसे काम करना है?
सटीक सिद्धांत द्वारा उत्पन्न जिज्ञासा क्या है? आप आसानी से सिम्फनी के डब्लूडीटी का उपयोग करके इसे देख सकते हैं। साथ ही आपको 'पोस्ट' तालिका में टिप्पणियों की कुल संख्या को स्टोर करना चाहिए और जब भी आप कोई टिप्पणी जोड़ते/निकालते हैं तो इसे घटाएं/घटाएं। – Crozin
हाय क्रोजिन, यह वही है जो मैं वास्तव में कर रहा हूं। लेकिन मैं यह काम करना चाहता हूं क्योंकि मैं अंतिम 24h, अंतिम दिन, पिछले महीने के लिए "सबसे गर्म" पोस्ट प्राप्त करने के लिए 'WHERE post.date>?' जैसे बयान जोड़ना चाहता हूं ...मैं इन आदेशों को 'ऐप/कंसोल सिद्धांत के साथ चला रहा हूं: क्वेरी: डीक्यूएल' और 'ऐप/कंसोल सिद्धांत: क्वेरी: एसक्यूएल'। – Quentin