mysql - Incorrect row index when grouping -
मैंने निम्नलिखित प्रश्न का निर्माण किया है:
SELECT p.id, p.tag_id, P.title, p.created_at, @indexer: = @indexer + 1 एएस इंडेक्सर से 'पोस्ट' के रूप में पी छोड़ दें 'वोट' के रूप में वी.आई.आई. पर v.votable_id और v.votable_type = "post" और v Deleted_at IS NULL JOIN (SELECT @indexer: = 0) AS i where p.deleted_at IS NULL GROUP BY p.id परिणाम मैं इस के साथ मिल रहा है:
< pre> <कोड> + ---- + -------- + ------------------------------ ------ + --------------------- + --------- + | आईडी | टैग_आईडी | शीर्षक | बनाया_एट | सूचक | + ---- + -------- + ----------------------------------- - + --------------------- + --------- + | 2 | 2 | पोस्टपोस्टपोस्ट | 2014-10-23 23:53:15 | 248 | | 3 | 3 | शीर्षक | 2014-10-23 23:56:13 | 6 | | 4 | 2 | GIFGIFIGIIF | 2014-10-23 23:59:03 | 1316 | | 5 | 2 | GIFGIFIGIIF | 2014-10-23 23:59:03 | 1317 | | 6 | 4 | मेरा नया अवतार | 2014-10-26 22:22:30 | 1318 | | 7 | 5 | हाय, हैय, ओह हे! | 2014-10-26 22:38:10 | 1 | | 8 | 6 | मैक्लेरन परीक्षण चुपके प्रौद्योगिकी | 2014-10-26 22:44:15 | 5 | | 9 | 7 | बस यादृच्छिक विचारों जबकि pooping | 2014-10-26 22:50:03 | 2 | + ---- + -------- + ----------------------------------- - + --------------------- + --------- +फिर भी, मुझे उम्मीद है यह:
+ ---- + -------- + ----------------------- ------------- + --------------------- + --------- + | आईडी | टैग_आईडी | शीर्षक | बनाया_एट | सूचक | + ---- + -------- + ----------------------------------- - + --------------------- + --------- + | 2 | 2 | पोस्टपोस्टपोस्ट | 2014-10-23 23:53:15 | 1 | | 3 | 3 | शीर्षक | 2014-10-23 23:56:13 | 2 | | 4 | 2 | GIFGIFIGIIF | 2014-10-23 23:59:03 | 3 | | 5 | 2 | GIFGIFIGIIF | 2014-10-23 23:59:03 | 4 | | 6 | 4 | मेरा नया अवतार | 2014-10-26 22:22:30 | 5 | | 7 | 5 | हाय, हैय, ओह हे! | 2014-10-26 22:38:10 | 6 | | 8 | 6 | मैक्लेरन परीक्षण चुपके प्रौद्योगिकी | 2014-10-26 22:44:15 | 7 | | 9 | 7 | बस यादृच्छिक विचारों जबकि pooping | 2014-10-26 22:50:03 | 8 | + ---- + -------- + ----------------------------------- - + --------------------- + --------- + संकेत: समस्या अनुक्रमणिकाकर्ता फ़ील्ड के साथ है यह GROUP BY स्टेटमेंट को जोड़ने के बाद हुआ।
मैंने जॉइन (SELECT @indexer: = 0) को स्थानांतरित करने की कोशिश की है, जैसा कि मैं के आस-पास बदल रहा हूं बस एक अतिरिक्त चयन करने के लिए, लेकिन कोई परिवर्तन नहीं
मैं इसे कैसे ठीक करूँ, ताकि अनुक्रमित सही हो?
और इस समस्या के पीछे तर्क क्या है?
अपने आप को जवाब मिला, को क्वेरी को एकाधिक subqueries में अलग करना पड़ा।
SELECT mq। *, @indexer: = @ इंडेक्स + 1 ए एस इंडेकर एफओआर (पीडीएड, पी.टी.आई.ए., पी.टी.आई.टी., पी.टी.ए.जी.आईडी, पी.टी.टी. = "पोस्ट" और v.deleted_at IS NULL WHERE p.deleted_at IS NULL GROUP BY p.id) AS mq JOIN (SELECT @indexer: = 0) जैसा मैं जाहिरा तौर पर, उस कारण क्वेरी के लिए बहुत अधिक एक्सेस की गई पंक्तियों ( EXPLAIN के अनुसार), लेकिन अतिरिक्त सूचकांकों के साथ भी इसे ठीक करने में कामयाब रहा। उस समस्या का पूरा जवाब यहां पाया जा सकता है:
Comments
Post a Comment