sql server—用于排除已与另一列idMap的记录并向其显示rest的sql查询

ev7lccsx  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(216)

我正在努力实现以下目标,但无法做到

Id   CatID  CategoryName
-------------------------
1    1      Movies
2    1      Movies
3    2      Books
4    3      Tools

我要达到的目标是:
我要所有的记录:
没有id 1和
排除id=1与其他id共享的(catid)记录。在这种情况下,id=1和id=2共享相同的catid=1(电影)。我想消除这些记录,并显示其余的。
输出:

Id   CatID  CategoryName
-------------------------
3    2      Books
4    3      Tools
x6492ojm

x6492ojm1#

你可以用 not exists :

select t.*
from mytable t
where not exists (
    select 1 from mytable t1 where t1.catID = t.catID and t1.id = 1
)

为了提高此查询的性能,请考虑在 (catID, id) .

相关问题