mysql - 如何根据下面给出的表构建 MYSQL 查询?

标签 mysql

我有两个具有主子关系的表。

主表:

master Id | Name 
  1       | name1
  2       | Name2

子表:

ChildId| MasterId | Detail |
  1    |  1       | det01  |
  2    |  1       | det02  |
  3    |  2       | det03  |
  4    |  2       | det04  |  
  5    |  2       | det05  |   

我想要什么:

ChildId| MasterId | Detail |
  5    |  2       | det05  |
  2    |  1       | det02  |

该表按 ChildId desc 排序,但针对 MasterId 有一条记录。请告诉我如何实现这个目标。

最佳答案

您需要将group by与聚合函数max()结合使用

select  c.masterid, max(c.childid), max(c.detail)
from child c inner join master m on c.masterid=m.`master id`
group by c.masterid
order by c.masterid desc

fiddle

关于mysql - 如何根据下面给出的表构建 MYSQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22351067/

相关文章:

php - 使用php访问远程数据库

mysql - 在一个查询中获取上个月和本月的总和

php - 从多个表获取数据结果记录较少

mysql - 计划优化对一个非常大的 InnodDB 表的访问

java - JDBC 访问器类的最佳实践

php - 显示相似的查询 php mysql

php - 从 putty 启动 PHPmyAdmin - 服务器是远程的

php - 是否有任何函数可以按相反顺序对数组进行排序?

mysql - sqoop到mysql导入问题

javascript - 在 Node.js 中使用 JS Promise 进行多个 mysql 调用