这是表格:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<span class="protein">script scale</span>
我需要查询相同的UID,版本号是最大数据。
这是我的sql:
CREATE TABLE position
(
id BIGINT NOT NULL
,remark CHARACTER VARYING(255)
,uid CHARACTER VARYING(255)
,version INTEGER
,weight CHARACTER VARYING(255)
,CONSTRAINT position_pkey PRIMARY KEY (id)
) 其中每添加一条数据生成一个uid
,"version" initialize = 1;
每修改一条数据
,uid不变
,version + 1;
但它返回错误的数据。
select *
from position as c
where c.id in (select max (d.id) from position as d group by d.uid);
为什么此查询会返回不同的结果?
答案 0 :(得分:0)
第一个查询将获取位置表中的最大ID,并且仅返回该id匹配的位置行
第二个查询将从位置表中获取最大版本,并仅返回该位置匹配的位置行
即。如果你有以下
ID Position
1 1
2 2
3 3
4 3
第一个查询只返回第4行。第二个将返回第3行和第4行