列出我表的元素

时间:2013-06-20 16:50:28

标签: mysql sql

我在列表中对我使用的表格有疑问: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

1 个答案:

答案 0 :(得分:1)

你有正确的想法,但是你想使用相关的子查询:

 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)

GROUP BY c.cliche_pk

这将获得与每个cliche_pk的最大值对应的行。