Robert: MySQL: Select von Spalten, wenn eine der Spalten max() sein soll

Beitrag lesen

Hallöle,

ich habe ein kleines Problemchen.

Hier erstmal meine Tabelle:

create table actions
(
        id int auto_increment not null,
        session int not null,
        sequence int not null,
        action int not null,
        state varchar(10),
        info varchar(100),

primary key id (id),
        unique key sessionsequence (session, sequence),
        key action (action)
);

id ist nur als primary key, wird für nichts anderes verwendet als für die Identifizierung (wird also als foreign key in anderen Tabellen benutzt).

action ist der Name einer Aktion.
sequence ist die Nummer der Aktion innerhalb einer Session (also die wievielte Aktion innerhalb der Session)
State und Info sind weitere Informationen zu der Aktion.

Was ich jetzt gerne hätte:
zu einer bestimmten Session die letzte Aktion (sprich: die mit der höchsten Nummer in sequence), und von ebendieser Aktion alle Spalten.

Mit
select max(sequence) from actions where session=17
bekomme ich zwar die gewünschte sequence-Nummer, hab damit also schon 2 Spalten (session und sequence), aber wie bekomme ich jetzt die anderen Spalten dazu?

select id, session, sequence, action, state, info from actions where session = 17 and sequence = (select max(sequence) from actions where session=17)

erscheint mir etwas umständlich wegen des nötigen Subselects.

Geht das auch irgendwie einfacher?

Verwendete DB: MySQL 5.0.15

TIA
cu,
Robert