私はこのようなテーブルを持っています:
id | version | name
1 1 name1 v1
1 2 name1 v2
1 3 name1 v3
1 4 name1 v4
2 1 name2 v1
2 2 name2 v2
2 3 name2 v3
このクエリを使用して、テーブル上のすべてのIDの最大バージョンを取得しようとしています。
SELECT a.id, MAX(a.version) AS version, b.name
FROM table1 a
INNER JOIN (
SELECT * FROM table1
) b
ON a.id = b.id AND a.version = b.version
GROUP BY a.id
しかし、代わりに次の結果が得られます。
id | version | name
1 4 name1 v1
2 3 name2 v1
これを取得する必要がある場合:
id | version | name
1 4 name1 v4
2 3 name2 v3
事前に感謝します、どんな助けでも大歓迎です
編集:
selectステートメントにmax(b.name)を追加すると、トリックがうまくいくことに気づきました。
とにかく、@ bluefeet、@ user2001117、@rsに感謝します。と@BramGerritsen。すべてのクエリは魅力のように機能します=)