Как исключить целую группу, если одна запись содержит определенное значение? - PullRequest
0 голосов
/ 09 января 2019

Вот мои таблицы:

TableA      
primarykey  Name    Description 
1           John    Male 
2           Josh    Male 
3           Allen   Male 

TableB      
projectid   Name    Category 
1           John    QB
1           John    RB
1           John    WR
2           Josh    QB
2           Josh    WR
3           Allen   QB 

И я хочу, чтобы запрос объединял обе таблицы, но я хочу, чтобы записи были только в том случае, если одна из записей не имеет 'RB'.

У меня есть общий запрос ниже

Select * from TableA a, TableB b, where a.primarykey = projectid
projectid   Name    Category    Description
1           John    QB          Male
1           John    RB          Male
1           John    WR          Male
2           Josh    QB          Male
2           Josh    WR          Male
3           Allen   QB          Male

но я не уверен, как исключить все записи, если у него есть «RB».

Я хочу, чтобы мои результаты были такими:

projectid   Name    Category    Description
2           Josh    QB          Male
2           Josh    WR          Male
3           Allen   QB          Male

Какие-либо советы или предложения о том, что использовать, чтобы попытаться получить это?

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Это может быть способ сделать это с помощью подзапроса в предложении WHERE

select b.projectid,b.Name,b.Category,a.Description
from TableA a,TableB b
where a.primarykey=b.projectid   
  and
  a.primarykey <> ( select projectid from tableb b  where b.category ='RB');
0 голосов
/ 09 января 2019

Таким способом вы можете использовать несуществующее с объединением, чтобы убедиться, что вы не получаете никакого идентификатора, имеющего «RB» в качестве категории.

select t1.projectId, t1.name, t1.category, t.description from tableA  t 
join tableB t1 on t1.projectid = t.primarykey 
where not exists (select 1 from tableB t2 where t1.projectID = t2.projectID and t2.category = 'RB') 
order by t1.projectID ;


PROJECTID   NAME    CATEGORY    DESCRIPTION
 2           Josh      WR        Male
 2           Josh      QB        Male
 3           Allen     QB        Male
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...