· 6 years ago · Aug 01, 2019, 05:16 AM
1SELECT *
2FROM `tbl_revisions`
3WHERE `date` IN (SELECT MAX(`date`)
4 FROM `tbl_revisions`
5 GROUP BY `rls_id`)
6GROUP BY `rls_id`
7
8CREATE TABLE IF NOT EXISTS `tbl_revisions`
9(
10 `id` int(21) NOT NULL AUTO_INCREMENT,
11 `rls_id` int(21) NOT NULL,
12 `date` datetime NOT NULL,
13 `user` int(21) NOT NULL,
14 `data` blob NOT NULL,
15 PRIMARY KEY (`id`)
16) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=66 ;
17
18Bill Karwin :
19
20SELECT r1.*
21FROM `tbl_revisions` r1
22LEFT OUTER JOIN `tbl_revisions` r2
23 ON (r1.`rls_id` = r2.`rls_id` AND r1.`date` < r2.`date`)
24WHERE r2.`rls_id` IS NULL;
25
26OMG Ponies:
27
28SELECT t.*
29 FROM TBL_REVISIONS t
30 JOIN (SELECT rls_id,
31 MAX(date) AS max_date
32 FROM TBL_REVISIONS
33 GROUP BY rls_id) x ON x.rls_id = t.rls_id
34 AND x.max_date = t.date
35
36SELECT r1.*
37FROM `tbl_revisions` r1
38LEFT OUTER JOIN `tbl_revisions` r2
39 ON (r1.`rls_id` = r2.`rls_id` AND r1.`date` < r2.`date`)
40WHERE r2.`rls_id` IS NULL;
41
42SELECT t.*
43 FROM TBL_REVISIONS t
44 JOIN (SELECT rls_id,
45 MAX(date) AS max_date
46 FROM TBL_REVISIONS
47 GROUP BY rls_id) x ON x.rls_id = t.rls_id
48 AND x.max_date = t.date
49
50SELECT ...,
51 (SELECT COUNT(*)...)
52
53SELECT * FROM tbl_revisions WHERE date = MAX(date) FROM tbl_revisions GROUP BY rls_id;