bana bu sorgu oluşturmak

0 Cevap php

I rls_id tarafından grubun satırları ayıklamak istiyorum ama son / son ile date

SELECT * FROM `tbl_revisions` where `date` in (SELECT MAX(`date`) FROM `tbl_revisions` group by `rls_id`) group by `rls_id`

Yukarıdaki sorgu iyi çalışıyor ama ben subqeuries kullanmak istemiyorum. Etrafta başka bir yol gerekir.

CREATE TABLE IF NOT EXISTS `tbl_revisions` (
  `id` int(21) NOT NULL AUTO_INCREMENT,
  `rls_id` int(21) NOT NULL,
  `date` datetime NOT NULL,
  `user` int(21) NOT NULL,
  `data` blob NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=66 ;

Edit: daha hızlı bir yol İhtiyaçları

Tamam. ben 2 çalışma Bill Karwin @ hem sayesinde sorgular ve @ Midilli OMG var.

Ben çok daha iyi diğer öğreneceksiniz burada hem sorguları için açıklayın yapıştırarak am

Bill Karwin :

SELECT r1.*
FROM `tbl_revisions` r1
LEFT OUTER JOIN `tbl_revisions` r2
  ON (r1.`rls_id` = r2.`rls_id` AND r1.`date` < r2.`date`)
WHERE r2.`rls_id` IS NULL;

alt text


OMG Ponies:

SELECT t.* 
  FROM TBL_REVISIONS t
  JOIN (SELECT rls_id,
               MAX(date) AS max_date
          FROM TBL_REVISIONS
      GROUP BY rls_id) x ON x.rls_id = t.rls_id
                        AND x.max_date = t.date

alt text

0 Cevap