में प्रत्येक 'समूह' की 'आखिरी' पंक्ति लौट रहा है क्या निम्नलिखित करने का एक और अधिक प्रभावी तरीका है?MySQL
select *
from foo as a
where a.id = (select max(id) from foo where uid = a.uid group by uid)
group by uid;
)
इस उत्तर समान दिखता है, लेकिन यह ऐसा करने का सबसे अच्छा तरीका है का जवाब है - How to select the first row for each group in MySQL?
धन्यवाद,
क्रिस।
पीएस
CREATE TABLE foo (
id INT(10) NOT NULL AUTO_INCREMENT,
uid INT(10) NOT NULL,
value VARCHAR(50) NOT NULL,
PRIMARY KEY (`id`),
INDEX `uid` (`uid`)
)
डेटा::
id, uid, value
1, 1, hello
2, 2, cheese
3, 2, pickle
4, 1, world
परिणाम:
id, uid, value
3, 2, pickle
4, 1, world
अधिक जानकारी के लिए http://www.barricane.com/2012/02/08/mysql-select-last-matching-row.html देखें तरह तालिका लग रहा है।
यह एक सहसंबंधित सबक्वायरी है। आमतौर पर, देवर्ट के उदाहरण के अनुसार, एक असंबंधित सबक्वायरी तेजी से साबित होगी। – Strawberry
संभावित डुप्लिकेट [प्रत्येक समूह में अंतिम रिकॉर्ड पुनर्प्राप्त करना] (http: // stackoverflow।कॉम/प्रश्न/1313120/प्रत्येक-समूह को अंतिम-रिकॉर्ड-इन-ग्रुप) –