2

テスト出力データベースに 2 つのテーブルがあり、実行されたテストケースに要件を関連付けます。テーブルは次のようになります。

mysql> select * from SSS_Req;
+-----+------+
| ID  | Req  |
+-----+------+
|   2 | 1122 |
|   3 | 1208 |
|   4 | 2525 |
+-----+------+
3 rows in set (0.00 sec)

mysql> select * from log_item;
+----+------+---------+-------------------------+
| ID | Req  | Status  | DateTime                |
+----+------+---------+-------------------------+
| 32 | 2525 | SUCCESS | 2012-10-09 18:24:54.375 |
| 33 | 1122 | FAIL    | 2012-10-09 18:24:54.390 |
| 65 | 2525 | SUCCESS | 2012-10-09 18:44:40.625 |
+----+------+---------+-------------------------+
3 rows in set (0.00 sec)

実行されていない要件 (できればリストの最初) を含め、最後に実行されてから (降順で) 時間順に並べ替えられたすべての要件を含むテーブルを取得したいと考えています。これは、A. テストされていない要件、B. 長期間テストされていない要件のリストを取得するのに役立ちます。

したがって、上記の情報が与えられた場合、次のような出力が得られます。

+------+-------------------------+
| SSS  | DateTime                |
+------+-------------------------+
| 1208 | NULL                    |
| 1122 | 2012-10-09 18:24:54.390 |
| 2525 | 2012-10-09 18:44:40.625 |
+------+-------------------------+

よろしく アンドレアス

4

2 に答える 2

1

left outer joinすべての要件を取得するにはが必要です。そしてgroup by、最後のログ時刻を取得するには:

select r.req as SSS, MAX(datetime)
from sss_req r left outer join
     log_item li
     on r.req = li.req
group by r.req
于 2013-04-29T13:24:54.380 に答える