mysql - 列出我的表的元素

标签 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

最佳答案

你的想法是对的,但是你想使用相关子查询:

 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/

相关文章:

mysql - 导入 8GB mysql dump 需要很长时间

php - WordPress 自定义 SQL-Query,太重了?

mysql - 重命名数据库

mysql - SQL 选择查询

mysql - 更新数据库结构 - 新表或添加字段

mysql - 如何在 MySQL 中的多个日期之间使用 Datediff?

sql - 如何连接最大值不大于列的另一个值的两个表

sql - SQL Server 中的相交

c# - 将 char 数据类型转换为 datetime 数据类型导致日期时间值超出范围错误

mysql - SQL 设计模式 : how do I store multiple unique ids from different sites in mashup?