Sql друзья датируемый запрос - PullRequest
0 голосов
/ 15 октября 2010

Эй, ребята, я действительно все испортил.Я попробовал это, но это не удалось.У меня есть следующие три таблицы, в которых пользователь Polard осуществлял поиск 2 раза в разные дни, а количество новых друзей увеличилось во втором поиске в таблице b.Мне просто нужно построить запрос, который даст мне двух недавно добавленных друзей (не будет присутствовать в конце списка второго поиска).В таблице c будет отображено 20 друзей polard с usid 1, а затем 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
 .       .     .      .
 .       .     .      .   

Ваша помощь будет высоко оценена.Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 15 октября 2010

Это то, что вы ищете?

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

Если вы хотите, чтобы оба значения usid также были динамическими, при условии, что вам нужно сделать последние версии 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 являются целочисленными приращениями, специфичными для каждого umid в таблице b.

Если это не так, то это будет немного сложнее, так как вам нужно выполнить Order до и получить 2-ое до последнего значение umid

1 голос
/ 15 октября 2010

Вы можете использовать подзапрос, используя NOT IN

, следуя примеру в http://www.dba -oracle.com / sql / t_subquery_not_in_exists.htm , можно сказать, дай мне всех друзейидентификатор пользователя 2, НЕ в (друзья с идентификатором пользователя 1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...