MAX関数を使ってからLEFT JOINしたいのですが・・
毎度お世話になります。
下記2つのテーブルからテーブル結合をして表示させたいのですが、その前にサブテーブルにある時間データの中で最新のものだけと結合したいと考えています。色々試したのですがうまくいきません。どなたかご教授の程よろしくお願いいたします。
main_tbl
| id | basyo | name |
---------------------
| 1 | 1 | aa |
| 2 | 1 | bb |
| 3 | 2 | cc |
| 4 | 3 | dd |
sub_tbl
| id | jyotai | time |
------------------------
| 1 | 1 |12:25:30|
| 1 | 2 |13:15:12|
| 2 | 1 |13:20:14|
| 1 | 3 |13:50:08|
欲しい結果
| id | basyo | name | jyotai | time |
---------------------------------------
| 1 | 1 | aa | 3 |13:50:08|
| 2 | 1 | bb | 1 |13:15:12|
| 3 | 2 | cc | null | null |
| 4 | 3 | dd | null | null |
考えた構文
$sql = "SELECT main_tbl.id, main_tbl.basyo, main_tbl.name, sub_tbl.jyotai, sub_tbl.time FROM main_tbl LEFT OUTER JOIN (SELECT MAX(time) FROM sub_tbl GROUP BY id) ON main_tbl.id = sub_tbl.id";
または
$sql = "SELECT main_tbl.id, main_tbl.basyo, main_tbl.name, sub_tbl.jyotai, sub_tbl.time FROM main_tbl LEFT OUTER JOIN sub_tbl on main_tbl.id = sub_tbl.id WHERE SELECT MAX(time) FROM sub_tbl GROUP BY id";
または
$sql1 = "SELECT MAX(time) FROM sub_tbl GROUP BY id";
$rs1 = mysql_db_query($db,$sql1) or die("sql Error!");
$sql = "SELECT main_tbl.id, main_tbl.basyo,main_tbl.name, $rs1.jyotai, $rs1.time FROM main_tbl LEFT OUTER JOIN $rs1 ON main_tbl.id = $rs1.id";
~以下クエリの実行と表示文~
どれも駄目でした。(クエリエラー表示)
因みに結合のみとMAX関数を別々に実行すると表示できることを確認しています。
環境は
WinXP
Mysql5.0.41
php5.2.3
です。
まだまだ勉強中ですのでよろしくお願いいたします。