![](/img/trans.png)
[英]SQL query via Python returns different results than direct SQL query. Why?
[英]SQL in query : why query returns different results?
這是表:
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;
我需要查詢相同的UID,版本號為最大數據。
這是我的SQL:
select *
from position as c
where c.id in (select max (d.id) from position as d group by d.uid);
但是它返回了錯誤的數據。
select *
from position as c
where c.version in (select max (d.version)
from position as d
group by d.uid);
為什么此查詢返回不同的結果?
第一個查詢將從位置表中獲取最大ID,並且僅返回該ID匹配的位置行
第二個查詢將從位置表獲取最大版本,並且僅返回該位置匹配的位置行
即如果你有以下
ID Position
1 1
2 2
3 3
4 3
第一個查詢將僅返回第4行。 第二個將返回第3和第4行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.