如何从db中选择重复值?

时间:2017-10-05 10:11:15

标签: python sql database algorithm postgresql

我有以下comment表(评论和相应信息,包括photo_id)

comment_id | photo_id |  ... 
  com_1    | pho_1    |  ...
  com_2    | pho_2    |  ...
  com_3    | pho_1    |  ...
  com_4    | pho_2    |  ...

前端发送请求:“嘿,后端,给我关于前两项的信息,我会显示它”

后台设置令牌到third项:

 comment_id | photo_id |  ... 
   com_1    | pho_1    |  ...
   com_2    | pho_2    |  ...
-->com_3    | pho_1    |  ...
   com_4    | pho_2    |  ...

并选择所有信息,直到第三条评论为止:

 pho_1      com_1 
 pho_2      com_2

然后将所有其他评论添加到相应的photo_id并将其发送到前面,以便用户将看到的最终信息将是:

pho_1      com_1, com_3
pho_2      com_2, com_4

我有以下问题:如果前面发送另一个请求“嘿,后端,给我关于下两个项目的信息,我将显示它”。然后将设备令牌后端再次设置到fifth项并向前发送完全相同的信息,这样用户将看到完全相同的信息,因为

1)选择

 pho_1      com_3 
 pho_2      com_4

2)并在照片ID上添加其他评论,它将是:

pho_1      com_1, com_3
pho_2      com_2, com_4

如何避免这种情况并且不发送重复的信息?

1 个答案:

答案 0 :(得分:0)

从我看来,你有两种选择。

DO 在照片ID上有外键

select * comment as c
right join (
    select * from photo 
    limit 2 offset 0
) as p
on c.photo_id = p.photo_id

在照片ID上有外键

select * comment 
where photo_id in (
    select photo_id from comment 
    limit 2 offset 0
)

在两者中,您需要从photo_id的角度进行分页。