当前位置: 首页 > news >正文

not exist 解决一对多 场景 条件过滤问题

场景:

现在存在一对多关系,蓝色的盒子装的篮球,黄的的盒子装的黄球,
黑色的盒子 (模拟工作类似场景)

boxIdballId
蓝盒ID-15
蓝盒ID-16
蓝盒ID-17
黄盒ID-212
黄盒ID-215
黄盒ID-216
黑盒ID-38
黑盒ID-39

需求:

例如 6,7,15这三个球为坏球,我现在不想查出这三个球以及他们所属的盒子的数据。

正常的left join where 实现不了这个效果。

select *  from  boxleft join Ball ON Box.id = Ball.boxIdwhere Ball.boxId not in (6,7,15)

查出的效果:

boxIdballId
蓝盒ID-15
黄盒ID-212
黄盒ID-216
黑盒ID-38
黑盒ID-39

但其实想要的效果是:

boxIdballId
黑盒ID-38
黑盒ID-39

因为 6,7都属于蓝盒ID-1这个组,6,7为坏球 ,只要蓝盒ID-1的数据我就要过滤掉

15 同理,属于黄盒ID-2,只要是黄盒ID-2的数据就要过滤掉。

所以 思路就是

先根据目标坏球 查出对应的盒子Id,再根据盒子Id来过滤。

select box.id,*  from  boxleft join Ball ON Box.id = Ball.boxIdwhere xxxand NOT EXISTS(select t.id from Ball t where t.id in (6,7,15) where t.id = box.id)

当然不用exist 用in也可以实现,这里就是给出了一种解决思路。

http://www.lryc.cn/news/450204.html

相关文章:

  • 解决$‘r‘ command not found或者文件夹显示’tvsf 33‘$‘r‘
  • linux:详解nohup命令
  • 负载箱:充电桩测试利器
  • Ubuntu 开机自启动 .py / .sh 脚本,可通过脚本启动 roslaunch/roscore等
  • RabbitMQ 消息队列:生产者与消费者实现详解
  • vue3项目中组件切换不起作用
  • YOLOv11改进策略【损失函数篇】| Slide Loss,解决简单样本和困难样本之间的不平衡问题
  • 动静态库(Linux)
  • 51单片机和ARM单片机的区别
  • [Day 81] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
  • flac格式怎么转mp3?关于flac转为MP3的方法介绍
  • 【笔记】KaiOS 系统框架和应用结构(APP界面逻辑)
  • java项目实现钉钉异常告警实时监控
  • Spring Boot应用:电子商务平台开发
  • 怎么在Vue3项目中引入Vant组件库并使用?
  • springboot中有哪些方式可以解决跨域问题
  • Temporal Dynamic Quantization for Diffusion Models阅读
  • 828华为云征文|华为云Flexus X实例性能实测:速度与稳定性的完美结合
  • 【PyTorch】图像分割
  • 如何快速建立自己的异地互联的远程视频监控系统,通过web浏览器可以直接查看公网上的监控视频(上)
  • 实验2思科网院项目2.7.2-packet-tracer---configure-single-area-ospfv2---实践练习
  • Nginx实战经验分享:从小白到专家的成长历程!
  • 从画质设置看游戏引擎(其一)
  • #git 问题failed to resolve head as a valid ref
  • YOLOv11,地瓜RDK X5开发板,TROS端到端140FPS!
  • Python精选200Tips:181-182
  • SpringCloud 配置 feign.hystrix.enabled: true 不生效
  • 9.24-k8s服务发布
  • UI设计师面试整理-作品集展示
  • CMU 10423 Generative AI:lec10(few-shot、提示工程、上下文学习)