![](/img/trans.png)
[英]How do I write a query to exclude groups of records if at least one record in the group meets a certain condition?
[英]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.