整个问题是由于IN
子句中的子查询似乎不适用于 mysql 3.23。
这是table1的表结构:
|**idTable1**|**strDescription**|
|1 |blablabla |
|2 |blablabla |
这是表2:
|**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 上实现这一点?