sql >> Database teknologi >  >> RDS >> Mysql

MySQL vælger max record i gruppe efter

Meget info på http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/

Dette har altid været et irriterende problem i MySQL. Der har været måder at undgå det på, såsom at sammenkæde flere felter sammen (startende med eksternt_id), og derefter vælge MAX() for det, og derefter skille det ad igen.

Jeg foreslår, at du bruger en afledt tabel. Første tabel (t1) er afledt af en simpel forespørgsel, hvor du identificerer MAX(external_id) , så tilslutter du dig fra det for at få resten af ​​dataene.

DETTE ER KUN HVIS external_id ER UNIK

SELECT t1.group_id, some_table.id, some_table.mypathFROM ( SELECT group_id, MAX(external_id) AS external_id FROM some_table GROUP BY group_id ) as t1INNER JOIN sometable ON t1.external_id =sometable.HERE_ /kode>


  1. Vælg flere tabeller, når én tabel er tom i MySQL

  2. Flere formularer og én behandlingsside

  3. SQLite CHECK begrænsninger

  4. Yii2 Hvordan udføres hvor OG eller ELLER tilstandsgruppering?