MySql View - 来自一列的值,其中一些列是最大值

时间:2009-09-03 20:40:50

标签: mysql view subquery

我在Table1.ID上有Table1和Table2相关。给定的Table1.ID可以有零个或多个Table2记录。我有一个视图,我想获得Table2.Value,其中Table2.ID是给定Table1.ID的最大值。一位朋友建议派生表,但这需要from子句中的子查询,MySQL不喜欢这样。有没有其他方法可以做到这一点?我尝试设置一个辅助视图来取代子查询,但它看起来很慢。我也尝试使用having子句来测试Table2.ID = MAX(Table2.ID),但它不识别该列,除非我把它放入组中,这会搞砸其他所有内容。

1 个答案:

答案 0 :(得分:0)

SELECT t1.*, t2a.*
FROM Table1 t1
LEFT JOIN Table2 t2a
 ON (t1.table1_id = t2a.table1_id)
LEFT JOIN Table2 t2b
 ON (t1.table1_id = t2b.table1_id AND t2a.table2_id < t2b.table2_id)
WHERE t2b.table2_id IS NULL
 AND t1.table1_id = ?;