大佬们帮看一下一个简单的SELECT怎么写

qq_37030863 2018-01-09 03:02:39
现在是需要查找一个中间表记录关联两个表的关联关系,关联关系为一对多,有一个字段是删除状态,删除状态等于1代表已经删除。根据一个ID 查找出多个值,如果全部都是删除的或没有结果代表ID没有关联。如何使用SELECT将ID 查找出多个值都是删除的ID 统计出来?
...全文
910 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36611253 2018-03-06
  • 打赏
  • 举报
回复
select a.id from (select id, sum(case when status=1 then 1 else 0 end) as shanchu, count(id) as quanbu from table group by id)a where a.shanchu/a.quanbu=1
ChinaITOldMan 2018-01-12
  • 打赏
  • 举报
回复
You'd better state your requirement clearly
Diza1986 2018-01-09
  • 打赏
  • 举报
回复
假设那个ID从T表中取得 只要全删除的,大概下面那样

select T.ID
from T,(select a.ID, min(a.delete_state) as delete_state from a group by a.ID) A
where T.ID = A.ID and A.delete_state = '1'
  and T.ID in (...)
Diza1986 2018-01-09
  • 打赏
  • 举报
回复
只要全删除的?没结果的不要吗?
qq_37030863 2018-01-09
  • 打赏
  • 举报
回复
引用 4 楼 Diza1986 的回复:
那要看这块的程序设计了,这几千个查询ID在哪或者说怎么获得的,在数据库中的话很简单表关联查询就好了, 程序的过程变量的话就要看数据结构和语言环境了,也有可能不得不循环处理
ID很好取,只需要在数据里查询就可以,比如已经取到 ID in(),然后如何根据这些ID到表a里查找结果都是删除的ID呢
Diza1986 2018-01-09
  • 打赏
  • 举报
回复
那要看这块的程序设计了,这几千个查询ID在哪或者说怎么获得的,在数据库中的话很简单表关联查询就好了, 程序的过程变量的话就要看数据结构和语言环境了,也有可能不得不循环处理
qq_37030863 2018-01-09
  • 打赏
  • 举报
回复
引用 2 楼 Diza1986 的回复:
引用
如果全部都是删除的或没有结果代表ID没有关联
条件就是不存在未删除的数据呗 not exsits(select 1 from a where a.id = 'x' and a.delete_state = '0') 的样子
如果要批量查询ID有几千个,然后怎么取出查询结果都是删除的ID呢
Diza1986 2018-01-09
  • 打赏
  • 举报
回复
引用
如果全部都是删除的或没有结果代表ID没有关联
条件就是不存在未删除的数据呗 not exsits(select 1 from a where a.id = 'x' and a.delete_state = '0') 的样子
qq_37030863 2018-01-09
  • 打赏
  • 举报
回复
比如一个值x,用值x到表a中可以查到多个结果,如果全部结果的delete_state都是1,则认为值X没有关联。用多个值查找表a怎么统计出结果都为删除的值

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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