全体の問題は、IN
句内のサブクエリが mysql 3.23 で機能しないように見えるという事実によるものです。
table1 のテーブル構造は次のとおりです。
|**idTable1**|**strDescription**|
|1 |blablabla |
|2 |blablabla |
ここにtable2があります:
|**idTable2**|**idTable1**|**intVersion**|
|1 |1 |1 |
|2 |1 |8 |
|3 |2 |2 |
|4 |2 |3 |
私が達成しようとしているもの:
説明を取得するためだけに両方のテーブルを結合しますが、次のように最大のバージョンを持つ各行の 1 つのレコードのみが必要です。
|**idTable1**|**strDescription**|**idTable2**|**idTable1**|**intVersion**|
|1 |blablabla |2 |1 |8 |
|2 |blablabla |4 |2 |3 |
これが私が思いついたものです:
SELECT table1.idTable1, strDescription, intVersion FROM table1
INNER JOIN table2 ON table1.idTable1 = table2.idTable1
WHERE (table1.idTable1, intVersion)
IN (SELECT idTable1, MAX(intVersion) FROM table2 GROUP BY idTable1)
このクエリを 2 つの異なるバージョンの mysql でテストしました。これが必要なのは 3.23 で、このクエリが機能するのは 5.5 です。
3.23でこれを達成する方法はありますか?