大家好,我真的搞砸了。我尝试过,但是失败了。我有以下三个表,其中用户极化在不同的日期进行了2次搜索,表b的第二次搜索中增加了朋友。我只需要构建查询即可给我两个新添加的朋友(不会出现在第二个搜索列表的末尾)。在表c中,将有20个与usid 1一起显示Polard的朋友,然后22个与usid 2一起显示的朋友,这意味着总记录将为42。

table a
uid  name
1     karos
2     polard

table b
usid  umid name    friends
1      2  polard    20
2      2  polard    22

table c
usrid   usid  name   friends
 1       1    hansy  10
 2       1    boje   23
 .       .     .      .
 .       .     .      .


您的帮助将不胜感激。
 先感谢您。

最佳答案

这是你想要的?

SELECT usrid
FROM c
WHERE usid = 2
AND usrid NOT IN (SELECT usrid FROM c WHERE usid = 1)


如果您希望两个usid值也都是动态的,那么假设您需要对Polarid的最新usid进行操作,则可能类似于

SELECT usrid
FROM c
WHERE usid =
       SELECT MAX (usid) FROM b WHERE name = 'polard')
AND usid NOT IN
      (SELECT usrid FROM c WHERE usid =
           SELECT MAX (usid) - 1 FROM b WHERE name = 'polard'))


假设usid值是表b中每个uminum的整数增量值。

如果他们不满意,那将有点复杂,因为您需要执行Order by并获得倒数第二个umid值

关于mysql - SQL好友数据表查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3941585/

10-12 23:28