mysql - 行级修订查询 MySQL

标签 mysql select revision

我目前对表中的值实现某种版本控制。我在 bookingIdrevision 之间有一个复合主键。我希望能够从此表中选择所有记录,哪些是主要修订版?我不确定我应该做什么。

[ 预订详情表 ] :

  • [ 预订编号 ]
  • [ 修订 ]
  • [ 姓名 ]
  • 等...

SELECT * from bookingDetailsTable group by bookingId 选择第一个修订,但是我希望能够为每个预订选择 HEAD 修订。

我应该补充一点,我不能做这样的事情,因为 WHERE 只会选择整个表中最高的修订版。

SELECT * from bookingDetailsTable where revision = (
                                    select max(revision) from bookingDetailsTable
                                   )
GROUP BY bookingId 

我当前的选择

这是我当前的选择,它有三个连接。 REVISION 控件仅限于明细表。所以我希望连接仅使用此表中的最高版本: module_bookings_bookings_details

SELECT `b`.*, `b`.`id` AS `bookingId`, `d`.*, `c`.*, `p`.* FROM `module_bookings_bookings` AS `b`
 INNER JOIN `module_bookings_bookings_details` AS `d` ON b.id = d.bookingId
 INNER JOIN `module_bookings_clients` AS `c` ON b.clientId = c.id
 LEFT JOIN `module_bookings_property` AS `p` ON d.propertyId = p.id GROUP BY `b`.`id`

最佳答案

这是我找到的一种解决方案。

使用自连接查询。

select * from module_bookings_bookings_details as d1 
left join module_bookings_bookings_details as d2 on d1.bookingId = d2.bookingId
      and d1.revision < d2.revision 
where  d2.revision IS NULL

来源:http://dev.mysql.com/doc/refman/5.1/en/example-maximum-column-group-row.html

虽然我不确定如何使用连接来执行该查询。

关于mysql - 行级修订查询 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3438807/

相关文章:

mysql - 在控制台中从 Spring JPA 查询与原始 SQL 获取不同的结果

php - 如何将没有键的数组插入mysql?

mysql复杂连接三个表的总计

java - 为基于 Java 的 Web 应用程序实现文章修订历史

jenkins - 在声明性 Jenkins 管道中获取 SVN 修订版

svn - 在创建分支的主干中查找修订版本

mysql - 错误 [IM014] [Microsoft][ODBC 驱动程序管理器] 指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配

mysql - 在 MediumBLOB 列中插入图像

mysql - 是否可以选择搜索查询的命中字段

mysql - 在一个查询中获取所有国家的州和城市