这是我的表格:
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
Run Code Online (Sandbox Code Playgroud)
我想要一个查询来组合两个表,但我只想要其中一个记录没有“RB”的记录。
我有一个一般性查询如下
Select * from TableA a, TableB b, where a.primarykey = projectid
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
但我不确定如何排除所有包含“RB”的记录。
这就是我想要的结果:
projectid Name Category Description
2 Josh QB Male
2 Josh WR Male
3 Allen QB Male
Run Code Online (Sandbox Code Playgroud)
关于使用什么来尝试获得这个的任何提示或建议?
您可以通过这种方式使用 not contains 和 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
Run Code Online (Sandbox Code Playgroud)