次の表の対応する REVID を使用して、各 NID の最後の「VERSION」を取得したいと考えています。
+------+-------+-----+---------+----------+
| RHID | REVID | NID | VERSION | ACTION |
+------+-------+-----+---------+----------+
| 1 | 1 | 1 | 1 | CREATE |
+------+-------+-----+---------+----------+
| 2 | 2 | 2 | 1 | CREATE |
+------+-------+-----+---------+----------+
| 3 | 3 | 1 | 2 | UPDATE |
+------+-------+-----+---------+----------+
| 4 | 4 | 1 | 3 | UPDATE |
+------+-------+-----+---------+----------+
| 16 | 3 | 1 | 4 | ROLLBACK |
+------+-------+-----+---------+----------+
私が実行すると:
SELECT a.nid, a.revID, MAX(a.version)
FROM `revision_history` a
GROUP BY a.nid;
結果は次のようになると思います。
+-----+-------+---------+
| NID | REVID | VERSION |
+-----+-------+---------+
| 1 | 3 | 4 |
+-----+-------+---------+
| 2 | 2 | 1 |
+-----+-------+---------+
代わりに、結果は次のとおりです。
+-----+-------+---------+
| NID | REVID | VERSION |
+-----+-------+---------+
| 1 | 3 | 4 |
+-----+-------+---------+
| 2 | 2 | 4 |
+-----+-------+---------+
Q. 期待する結果を得るために適切なクエリは何ですか?
ノート:
これは、ビューを構築するためのものです (MySQL ではサブクエリをサポートしていません)。