मैं इस तरह की समस्या पर काफी कुछ समाधान देखा है, लेकिन इनमें से कोई भी उचित होने लगते हैं:पंक्तियां चुनें
मैं निम्न तालिका है लेआउट, संलग्नक, जो संस्थाओं के लिए बाध्य कर रहे हैं की एक संस्करण:
TABLE attachments
+------+--------------+----------+----------------+---------------+
| id | entitiy_id | group_id | version_number | filename |
+------+--------------+----------+----------------+---------------+
| 1 | 1 | 1 | 1 | file1-1.pdf |
| 2 | 1 | 1 | 2 | file1-2.pdf |
| 3 | 1 | 2 | 1 | file2-1.pdf |
| 4 | 2 | 1 | 1 | file1-1.pdf |
| 5 | 2 | 1 | 2 | file1-2.pdf |
| 6 | 2 | 3 | 1 | file3-1.pdf |
+------+--------------+----------+----------------+---------------+
आउटपुट होना चाहिए मैक्स संस्करण संख्या, group_id और ENTITY_ID आधार पर वर्गीकृत किया है, मैं केवल एक entity_ids के लिए एक सूची आवश्यकता होगी कि अगर मदद करता है:
+------+--------------+----------+----------------+---------------+
| id | entitiy_id | group_id | version_number | filename |
+------+--------------+----------+----------------+---------------+
| 2 | 1 | 1 | 2 | file1-2.pdf |
| 3 | 1 | 2 | 1 | file2-1.pdf |
| 5 | 2 | 1 | 2 | file1-2.pdf |
| 6 | 2 | 3 | 1 | file3-1.pdf |
+------+--------------+----------+----------------+---------------+
मैं क्या लेकर आए हैं इस आत्म है के साथ एक में शामिल होने:
SELECT *
FROM `attachments` `attachments`
LEFT OUTER JOIN attachments t2
ON (attachments.group_id = t2.group_id
AND attachments.version_number < t2.version_number)
WHERE (t2.group_id IS NULL)
AND (`t2`.`id` = 1)
GROUP BY t2.group_id
लेकिन यह एक ही काम करता है विभिन्न संस्थाओं एक ही समूह संख्या साझा नहीं करते तो। यह दुर्भाग्य से जरूरी है।
दृश्य बनाने के दौरान मैं एक समाधान समाधान में आया, लेकिन यह मेरे वर्तमान सेटअप में समर्थित नहीं है।
किसी भी विचार की अत्यधिक सराहना की जाती है। धन्यवाद!
धन्यवाद! यह एक बहुत ही सरल समाधान है। –
मैं कम से कम सुनिश्चित करता हूं कि आपने तालिका प्रदर्शन को बनाए रखने के लिए सुझाई गई कुंजी को जोड़ दिया है, इसलिए entitiy_id, group_id, और version_number। आपके प्रश्न में आपने निर्दिष्ट किया है कि यह एकल इकाई आईडी के लिए था, और यह विकल्प प्रविष्टि को सीमित करने के लिए उपयोग नहीं किए जा रहे entity_id के कारण उच्च तालिका वॉल्यूम्स पर अन्य सुझावों की तुलना में अधिक धीरे-धीरे प्रदर्शन करेगा। गैर-एएनएसआई के लिए –
-1 –