查询中的SQL:为什么查询返回不同的结果?

时间:2016-11-26 07:42:13

标签: sql postgresql

这是表格:

<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);

为什么此查询会返回不同的结果?

1 个答案:

答案 0 :(得分:0)

第一个查询将获取位置表中的最大ID,并且仅返回该id匹配的位置行

第二个查询将从位置表中获取最大版本,并仅返回该位置匹配的位置行

即。如果你有以下

ID     Position
1      1
2      2
3      3
4      3

第一个查询只返回第4行。第二个将返回第3行和第4行