いつもお世話になっています。
CakePHP2.xで顧客の情報を引き出したいのですが、書き方がどうしてもわからず、希望の結果が出ません。
以下の結果を導き出したい場合、どのように記述すれば良いのでしょうか?
顧客テーブル
顧客ID | 更新日 |
---|---|
1 | 2018-06-25 15:21:00 |
2 | 2017-04-02 04:05:00 |
3 | 2018-02-17 14:29:00 |
商品テーブル
ID | 種別 | 顧客ID | 登録日 |
---|---|---|---|
1 | A | 1 | 2017-09-12 09:10:00 |
2 | A | 2 | 2017-10-06 13:33:00 |
3 | B | 1 | 2017-11-22 11:20:00 |
4 | A | 2 | 2018-01-05 01:24:00 |
5 | B | 2 | 2018-02-09 06:14:00 |
希望する結果
顧客テーブルの「更新日」、商品テーブルの「種別と顧客IDで絞った登録日」を比較して、一番最新の日時を引き出したい。
顧客ID | 一番新しい日付 |
---|---|
1 | 2018-06-25 15:21:00 |
2 | 2018-02-09 06:14:00 |
3 | 2018-02-17 14:29:00 |
商品テーブルの情報絞り込みは、CASEでの分岐もあるので以下のようなサブクエリを作って顧客テーブルにJOINさせようとしていたのですが、商品テーブルに情報のある「顧客1」「顧客2」は「一番新しい日付」が取れても、「更新日」しかない「顧客3」の日付が取れなかったりと、根本的に繋げ方がおかしいようです。
MySQL
1GREATEST(COALESCE(MAX(商品テーブル, -2147483648)), COALESCE(更新日, -2147483648)) AS 一番新しい日付
本来、どのような書き方をするのが正しいのでしょうか?