मैंने सहायता के लिए साइट की खोज की है लेकिन अभी भी संघर्ष कर रहा है। यहां मेरी तालिका है:तालिका (डेटाटाइम फ़ील्ड) में नवीनतम रिकॉर्ड का चयन करें
messages ======== id thread_id user_id subject body date_sent
असल में मैं प्रत्येक थ्रेड_आईडी के लिए नवीनतम रिकॉर्ड पुनर्प्राप्त करना चाहता हूं। मैंने निम्नलिखित कोशिश की है:
SELECT id, thread_id, user_id, subject, body, date_sent
FROM messages
WHERE user_id=1 AND date_sent=(select max(date_sent))
GROUP BY thread_id
ORDER BY date_sent DESC
लेकिन यह मुझे सबसे पुराना रिकॉर्ड दे रहा है, न कि नवीनतम!
कोई भी सलाह देने में सक्षम है?
संपादित करें: टेबल डंप:
-- -- Table structure for table `messages` -- CREATE TABLE IF NOT EXISTS `messages` ( `id` int(10) unsigned NOT NULL auto_increment, `thread_id` int(10) unsigned NOT NULL, `user_id` int(10) unsigned NOT NULL, `body` text NOT NULL, `date_sent` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=34 ; -- -- Dumping data for table `messages` -- INSERT INTO `messages` (`id`, `thread_id`, `user_id`, `body`, `date_sent`) VALUES (1, 1, 1, 'Test Message', '2011-01-20 00:13:51'), (2, 1, 6, 'Test Message', '2011-01-20 01:03:50'), (3, 1, 6, 'Test Message', '2011-01-20 01:22:52'), (4, 1, 6, 'Test Message', '2011-01-20 11:59:01'), (5, 1, 1, 'Test Message', '2011-01-20 11:59:22'), (6, 1, 6, 'Test Message', '2011-01-20 12:10:37'), (7, 1, 1, 'Test Message', '2011-01-20 12:10:51'), (8, 2, 6, 'Test Message', '2011-01-20 12:45:29'), (9, 1, 6, 'Test Message', '2011-01-20 13:08:42'), (10, 1, 1, 'Test Message', '2011-01-20 13:09:49'), (11, 2, 1, 'Test Message', '2011-01-20 13:10:17'), (12, 3, 1, 'Test Message', '2011-01-20 13:11:09'), (13, 1, 1, 'Test Message', '2011-01-21 02:31:43'), (14, 2, 1, 'Test Message', '2011-01-21 02:31:52'), (15, 4, 1, 'Test Message', '2011-01-21 02:31:57'), (16, 3, 1, 'Test Message', '2011-01-21 02:32:10'), (17, 4, 6, 'Test Message', '2011-01-20 22:36:57'), (20, 1, 6, 'Test Message', '2011-01-20 23:02:36'), (21, 4, 1, 'Test Message', '2011-01-20 23:17:22');
संपादित करें: क्षमा याचना - मैं चीजों को थोड़ा उलझन में यहाँ मिल गया है सकते हैं - मूल रूप से मैं क्या चाहते हैं, किसी दिए गए user_id के लिए सभी संदेशों को पुनः प्राप्त करने के फिर नवीनतम संदेश नहीं मिल रहा है (प्रति thread_id) उन पुनर्प्राप्त संदेशों से।
यह सॉर्ट क्रम यही समस्या है या इसके लिए सबसे पुराने रिकॉर्ड को चुन रही है है नवीनतम उपयोगकर्ता की बजाय प्रत्येक उपयोगकर्ता? – ChrisF
यह नवीनतम के बजाय सबसे पुराना रिकॉर्ड चुन रहा है। ऑर्डर द्वारा ठीक काम कर रहा है। – GSTAR
क्या आप कुछ prefilled मूल्यों के साथ तालिका में एक डंप प्रदान करने में सक्षम होंगे ताकि मैं इस पर अपनी क्वेरी का परीक्षण कर सकूं। मुझे लगता है कि मेरे पास स्केलर सबक्वायरी का उपयोग करके बहुत आसान तरीका है और सभी समूह बाई क्रॉस जॉइन इत्यादि का उपयोग नहीं कर रहा है। – andrew