ORACLE 数据库查询

YZH_0710 2018-09-27 10:12:35
在做一个数据库的项目

有一张表,她可能存在这样的记录

id 姓名 性别,年龄,爱好

1 张三 男 20 游泳
2 张三 男 20 跑步
3 李四 男 25 游泳
4 李四 男 25 登山


想在怎么样才能找出爱好中既有 游泳又有跑步的这个人的姓名 oracle
请求帮助
...全文
494 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
YZH_0710 2018-10-08
  • 打赏
  • 举报
回复
结贴给分了。
卖水果的net 2018-09-28
  • 打赏
  • 举报
回复
having count(1) = 2 换成下面这个,防止存在 两个或两个的 游泳 having count(distinct 爱好) = 2
nayi_224 2018-09-27
  • 打赏
  • 举报
回复
select 姓名 from tab where 爱好 in ('游泳', '跑步') having count(1) = 2;
nayi_224 2018-09-27
  • 打赏
  • 举报
回复
再套一层
select*from
(select 姓名 from tab where 爱好 in ('游泳', '跑步') group by 姓名 having count(1) = 2) t1, 
tab2 t2
where t1.姓名 = t2.aaa(+)
YZH_0710 2018-09-27
  • 打赏
  • 举报
回复
如果我加一张表进去呢,比如现在又有一张人员详细信息表,ID与上面标对应,然后要如何写查询语句
YZH_0710 2018-09-27
  • 打赏
  • 举报
回复
确实是差了GROPU BY 加上就可以了 结贴给分了
nayi_224 2018-09-27
  • 打赏
  • 举报
回复
引用 2 楼 YZH_0710 的回复:
[quote=引用 1 楼 nayi_224 的回复:] select 姓名 from tab where 爱好 in ('游泳', '跑步') having count(1) = 2;
你确定这样查询可以,你试过吗? [/quote] 没试过。我难道还要给你建一套测试数据? 少个group by把,自己加上吧。
YZH_0710 2018-09-27
  • 打赏
  • 举报
回复
引用 1 楼 nayi_224 的回复:
select 姓名 from tab where 爱好 in ('游泳', '跑步') having count(1) = 2;


你确定这样查询可以,你试过吗?

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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