आईडी चीज़ अभी भी सैद्धांतिक रूप से काम करेगी, बशर्ते कि आईडी कभी न बदले...
मैं "तारीख" नामक तालिका संरचना में टाइमस्टैम्प फ़ील्ड का उपयोग करने की अनुशंसा करता हूं और डिफ़ॉल्ट मान के रूप में "CURRENT_TIMESTAMP" का उपयोग करता हूं, यह डालने पर रिकॉर्ड पर दिनांक/समय को स्वत:पॉप्युलेट करेगा...
इस क्षेत्र द्वारा आदेश डीईएससी, सीमा x
साथ ही, मैंने समूहीकरण के कारण गलत डेटा प्रदर्शित होने के कई मामलों का अनुभव किया है... सुनिश्चित करें कि ORDER BY और LIMIT लागू होने से पहले आपका डेटा सही है
उपयोगकर्ता1 से उपयोगकर्ता1 में पोस्ट प्राप्त करने के लिए इसके आधार पर समूह बनाने की आवश्यकता नहीं है:
SELECT * FROM posts
WHERE toID=fromID
ORDER BY date DESC LIMIT 3
* से user1 को पोस्ट प्राप्त करने के लिए:
SELECT * FROM posts
WHERE toID="USER1_ID"
ORDER BY date DESC LIMIT 3
* से उपयोगकर्ता 1 के लिए पोस्ट प्राप्त करने के लिए, केवल अद्वितीय उपयोगकर्ता:
SELECT * FROM posts
WHERE toID="USER1_ID"
GROUP BY FromID
ORDER BY date DESC LIMIT 3
कभी-कभी आप उस समस्या का सामना करेंगे जहां ORDER BY द्वारा GROUPED रिकॉर्ड का आदेश नहीं दिया जाता है, क्योंकि ORDER BY को समूहीकरण लागू होने के बाद परिणाम पर लागू किया जाता है... समाधान प्राप्त करने के लिए:
SELECT * FROM (
SELECT * FROM posts
WHERE toID="USER1_ID"
ORDER BY date DESC
) as `derived` GROUP BY FromID LIMIT 3
अंतिम 3 उपयोगकर्ताओं को प्राप्त करने के लिए जिन्होंने हाल ही में खुद को एक पोस्ट भेजा है:
SELECT * FROM (
SELECT * FROM posts
WHERE toID=fromID
ORDER BY date DESC
) as `derived` GROUP BY FromID LIMIT 3