次のような最終更新日(タイムスタンプですが、bigint(20)列として)を取得するクエリがあります。
SELECT a.id_workorder, MAX(b.update_date) AS udpate_date
FROM main_log a,
(
SELECT MAX(log_date) AS update_date, log_id
FROM log_a
GROUP BY log_id
UNION
SELECT MAX(log_date) AS update_date, log_id
FROM log_b
GROUP BY log_id
)b
WHERE a.id_log = b.log_id
GROUP BY b.log_id
そして、あらゆる種類のログ (a または b) の最終更新日 (bigint(20) としての UNIX タイムスタンプ) を返します。
id last update
-------------------------
1001 1376750476349
1002 1376753690861
1003 1378122801986
1004 1377764414858
1005 1377847226096
...
ここで、戻り値を日付形式でフォーマットしたいのですが、単純に、次のFROM_UNIXTIME
ように外部のタイムスタンプをフォーマットできます。
SELECT
a.id_workorder,
FROM_UNIXTIME(MAX(b.update_date)) AS udpate_date
FROM main_log a,
(
SELECT MAX(log_date) AS update_date, log_id
FROM log_a
GROUP BY log_id
UNION
SELECT MAX(log_date) AS update_date, log_id
FROM log_b
GROUP BY log_id
)b
WHERE a.id_log = b.log_id
GROUP BY b.log_id
しかし、それは与えます
id last update
-------------------------
1001 null
1002 null
1003 null
1004 null
1005 null
...
内部クエリにも変換を入れようとしましたが、同じです。
また、SO、mySQL ドキュメント、および Google で回答を見つけようとしましたが、group by
.