sql,联合主键,按id分组求版本号最大值的集合

表结构如下:

/*
SQLyog v10.2
MySQL - 5.5.39
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;

create table `seal` (
    `id` varchar (96),
    `update_user` varchar (96),
    `update_time` datetime ,
    `seal_name` varchar (150),
    `remark` varchar (600),
    `is_enable` int (1),
    `seal_image` blob ,
    `seal_version` int (11),
    `is_del` int (1)
);
insert into `seal` (`id`, `update_user`, `update_time`, `seal_name`, `remark`, `is_enable`, `seal_image`, `seal_version`, `is_del`) values(‘91b2b13c47aa4cf7b5faf9093c899cfc‘,‘820e2deb8efe11e4b4a2bcaec5330601‘,‘2015-11-26 15:53:59‘,‘1‘,‘22222‘,‘1‘,‘??,‘1‘,‘1‘);
insert into `seal` (`id`, `update_user`, `update_time`, `seal_name`, `remark`, `is_enable`, `seal_image`, `seal_version`, `is_del`) values(‘91b2b13c47aa4cf7b5faf9093c899cfc‘,‘820e2deb8efe11e4b4a2bcaec5330601‘,‘2015-11-26 15:54:49‘,‘1‘,‘1111‘,‘1‘,‘塒NG\r\n\Z\n‘,‘2‘,‘1‘);

对应的mysql如下:

现在的需求是:因为表中用的是联合主键,id+seal_version,所以id可能相同,

要求:求出id一样的数据中,seal_version最大的数据

select * from seal sl
left join
(
select id,max(seal_version) as seal_version from seal
group by id
) temp
on sl.id=temp.id and sl.seal_version=temp.version
时间: 2024-11-05 01:42:07

sql,联合主键,按id分组求版本号最大值的集合的相关文章

SQL联合主键 查重

2014年最后一天,今天在给数据库导入数据的时候,遇到一个问题,就是联合主键去重. 事情是这样的,现有一个表M,我想找个表中导入了许多数据,并需要将字段A(int)和B(int)联合设置为主键. 但是在设置主键时,告知我有重复的内容,无法设置主键. 正常情况下,这两个字段的组合是唯一的,不应该重复,为了找到重复数据,看看是什么方面出了问题. 采用distinct方式 但是发现 select count(distinct name, id) from A 这句话在SQL里不适用,http://ww

SQL Server中的联合主键、聚集索引、非聚集索引

我们都知道在一个表中当需要2列以上才能确定记录的唯一性的时候,就需要用到联合主键,当建立联合主键以后,在查询数据的时候性能就会有很大的提升,不过并不是对联合主键的任何列单独查询的时候性能都会提升,但我们依然可以通过对联合主键中的首列除外的其他列建立非聚集索引来提高性能.本文将对联合主键.聚集索引.非聚集索引对查询性能的影响举例说明.步骤一,建立一个测试表,并且插入350万条以上的数据. /*创建测试数据表*/create table MyTestTable(id varchar(10)not n

sql的注释和联合主键

1.添加注释的sql comment on table tableName is '表注释'; comment on  column tableName.columnName is '字段注释说明'; comment on table t_cif_ehrlog is 'ehr同步日志表';comment on column t_cif_ehrlog.id is '流水号';comment on column t_cif_ehrlog.syn_date is '同步年月(yyyy-mm)';com

SQL 创建联合主键Table

CREATE TABLE [User_Instance]( [IntanceID] [int] NOT NULL, [StaffID] [char](10) NOT NULL ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO ALTER TABLE [[User_Instance] WITH NOCHECK ADD CONSTRAINT [PK_User_Instance] PRIMARY KEY NONCLUSTERED ( IntanceID, StaffI

Hibernate(5)—— 联合主键 、一对一关联关系映射(xml和注解) 和 领域驱动设计

俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: One to One 映射关系 一对一单向外键(XML/Annotation) 一对一双向外键关联(XML/Annotation) 联合主键 一对一单向外键联合主键(Xml/Annotation) 一对一组件关联(XML/Annotation) 理解组件 领域驱动设计——自动生成数据库脚本 一对一关系的小结 一些出错问题的总结 自动生成数据库脚本 一般在项目开发过程中,我们的习惯是先建好数据库和表,然后在进

在LINQ中实现多条件联合主键LEFT JOIN

我昨天遇到一个LINQ下使用多条件比对产生LEFT JOIN的问题,经过深入研究,终于解决了,也让我学到了新的东西,特地拿来分享. 实例:有一张库存异常变更视图KCYD,仓库ID[Ckid]和物品ID[SpxxId]是该视图的唯一约束.有一张物品表ITEM,物品ID[ITEM_ID]是主键.还有一张表是统计正品和次品库存数量的视图SPKC,仓库ID[CKID]和物品ID[SPXXID]是该视图的唯一约束.现在的要求是根据条件查询库存异常变更的物品信息,即要求KCYD左联ITEM再左联SPKC.K

NHibernate 映射基础(第三篇) 简单映射、联合主键

NHibernate 映射基础(第三篇) 简单映射.联合主键 NHibernate完全靠配置文件获取其所需的一切信息,其中映射文件,是其获取数据库与C#程序关系的所有信息来源. 一.简单映射 下面先来一个简单的例子,然后随着不断地对这个例子修修改改,从而真正了解映射文件.具体的资料可以查看http://www.cnblogs.com/kissdodog/archive/2013/02/21/2919886.html 先来看一张表: 映射文件Product.hbm.xml: <?xml versi

Hibernate笔记③--集合映射、组合映射、联合主键、查询案例

lazy 懒加载 默认为proxy ? 继承映射 discriminant column="type" type="string" ? 集合映射 生成表的语句: public class DbCreate { ????public static void main(String[] args) { ????????Configuration cfg=new Configuration().configure("/hibernate.cfg.xml"

《Hibernate学习笔记之三》:联合主键的映射

<Hibernate学习笔记之三>:联合主键的映射 就如在前面所举的例子一样,是使用的id作为唯一的主键,一般情况下我们也只使用唯一的一个属性作为主键,但是在实际中,我们可能会遇到几个属性作为主键的情况,因此,在本篇博文中,就来介绍下,联合主键的映射关系应该如何来做?? 联合主键的映射有两种方式来进行实现. 1.使用映射文件 XXX.bhm.xml 2.使用Annotation Hibernate首先需要使用联合主键的实体类必须实现Serializable接口,即为了使序列能够被序列化进行传输