簡體   English   中英

如果一條記錄包含某個值,如何排除整個組?

[英]How to exclude a whole group if one record contains a certain value?

這是我的桌子:

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

關於嘗試使用此工具的任何提示或建議?

您可以通過這種方式利用join中不存在的屬性,以確保沒有任何以“ RB”作為類別的ID。

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

這可能是在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');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM