現在、私は、各グループの最後のレコードを見つけるのに最も効率的な方法を見つけようとしています。EXPLAIN SELECTで使用されるテーブルがありません。
私が見つけた最も簡単な方法は、サブクエリを使用しますが、その中にFROM句を省略します
```
EXPLAIN
SELECT customer, server, disk
FROM t1
WHERE timestamp = (SELECT MAX(timestamp))
GROUP BY customer, server, disk;
```
しかしEXPLAIN
は、サブクエリにNo tables used
を提供しています。
```
+------+--------------------+-------+------+---------------+------+---------+------+-----------+----------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+------+--------------------+-------+------+---------------+------+---------+------+-----------+----------------------------------------------+
| 1 | PRIMARY | t1 | ALL | NULL | NULL | NULL | NULL | 185093129 | Using where; Using temporary; Using filesort |
| 2 | DEPENDENT SUBQUERY | NULL | NULL | NULL | NULL | NULL | NULL | NULL | No tables used |
+------+--------------------+-------+------+---------------+------+---------+------+-----------+----------------------------------------------+
```
唯一の他のオプションJOINS
またはFROM
句のサブクエリを使用しています。どちらも両方のテーブルスキャンを2回行っているようです。ここで説明した方法に問題はありますか?
のように考えて:私は、クエリがエラーをThowさんを期待したいです。しかし、あなたの仕事を解決するための多くの答えがあります。 –