如何查询只有一条记录的人员

lingshao0909 2009-02-10 02:30:09
表中每个人的记录数不同(1-15条记录),怎么将只有一条记录的人员查询记录查询出来。
表结构:
id mc fx
1 aaa 1
2 ooo 1
3 bbb 1
4 bbb 1
5 ccc 1
6 ddd 1
7 eee 1
8 nnn 1
9 aaa 1
10 aaa 1
11 ccc 1
12 aaa 1
13 aaa 1
14 fff 1
15 aaa 1
16 ggg 1

查询结果
id mc fx
2 ooo 1
6 ddd 1
7 eee 1
8 nnn 1
14 fff 1
16 ggg 1
...全文
76 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2009-02-10
  • 打赏
  • 举报
回复
create table tb(id int, mc varchar(10), fx int)
insert into tb values(1 , 'aaa' , 1 )
insert into tb values(2 , 'ooo' , 1 )
insert into tb values(3 , 'bbb' , 1 )
insert into tb values(4 , 'bbb' , 1)
insert into tb values(5 , 'ccc' , 1 )
insert into tb values(6 , 'ddd' , 1 )
insert into tb values(7 , 'eee' , 1 )
insert into tb values(8 , 'nnn' , 1 )
insert into tb values(9 , 'aaa' , 1 )
insert into tb values(10, 'aaa' , 1 )
insert into tb values(11, 'ccc' , 1 )
insert into tb values(12, 'aaa' , 1 )
insert into tb values(13, 'aaa' , 1 )
insert into tb values(14, 'fff' , 1 )
insert into tb values(15, 'aaa' , 1 )
insert into tb values(16, 'ggg' , 1 )
go

select mc from tb group by mc having count(*) = 1
/*
mc
----------
ddd
eee
fff
ggg
nnn
ooo

(所影响的行数为 6 行)
*/

select * from tb where mc in (select mc from tb group by mc having count(*) = 1)
/*
id mc fx
----------- ---------- -----------
2 ooo 1
6 ddd 1
7 eee 1
8 nnn 1
14 fff 1
16 ggg 1

(所影响的行数为 6 行)
*/
drop table tb

dawugui 2009-02-10
  • 打赏
  • 举报
回复
select mc from tb group by mc having count(*) = 1

select * from tb where mc in (select mc from tb group by mc having count(*) = 1)

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧