我正在尝试从具有ID列的表中获取一行,该ID列在SQlite数据库的几行中重复,但是我正在获取表中的所有行。

这是我的表创建和选择查询。

CREATE TABLE IMAGES ( MID INTEGER , IMAGE BLOB, ID INTEGER );


SELECT DISTINCT ID, IMAGE  FROM IMAGES;


这就是我得到的

mid | image | id
 1  |  m1   |  1
 2  |  m2   |  1
 3  |  m3   |  1
 4  |  m4   |  2
 5  |  m5   |  3
 6  |  m6   |  3


这就是我想要的

mid | image | id
 1  |  m1   |  1
 4  |  m4   |  2
 5  |  m5   |  3

最佳答案

您需要选择正确的列

SELECT min(mid) FROM images GROUP BY id;


然后,您需要使用它来选择正确的行。

SELECT DISTINCT ID, IMAGE  FROM IMAGES WHERE mid in (SELECT min(mid) FROM images GROUP BY id);


否则,可以从任何行(或最后一行)组成GROUP BY的记录。

关于sqlite - SQLite选择查询以从具有相同ID的多行中获取一行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33451332/

10-12 22:43