我对我使用的表中的列表记录有疑问:JOIN、MAX、GROUP BY
我正在使用以下查询:
SELECT cr.*
FROM cliche c
INNER JOIN cliche_revisao cr ON c.cliche_pk = cr.cliche_pk
WHERE cr.numero = (SELECT MAX(number) FROM cliche_revisao WHERE cliche_pk = 3)
GROUP BY c.cliche_pk
问题是,因为是所有元素的列表,所以不必在子查询中传递文字值。
我试过这个查询,但没有成功
SELECT cr.*, @cliche:= c.cliche_pk
FROM cliche c
INNER JOIN cliche_revisao cr ON c.cliche_pk = cr.cliche_pk
WHERE cr.numero = (SELECT MAX(numero) FROM cliche_revisao WHERE cliche_pk = @cliche)
GROUP BY c.cliche_pk
最佳答案
你的想法是对的,但是你想使用相关子查询:
SELECT cr.*
FROM cliche c
INNER JOIN cliche_revisao cr ON c.cliche_pk = cr.cliche_pk
WHERE cr.numero = (SELECT MAX(number)
FROM cliche_revisao cr2
WHERE cr2.cliche_pk = cr.cliche_pk)
按 c.cliche_pk 分组
这将获取与每个 cliche_pk
的最大值对应的行。
关于mysql - 列出我的表的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17219328/