A/B表替1对多关系,要求联合查询B表只提取一条与A记录关联的记录
来源:互联网 发布:yes淘宝刷信用 编辑:程序博客网 时间:2024/06/05 06:00
A表 aid name
1 KLK
2 KSS
3 LKI
……
N ADD
B表 bid name_id ports
1 1 9089
2 1 8089
3 1 7089
4 2 6077
5 2 7077
6 3 8900
……
查询结果要求为:
aid bid ports
1 1 9089
2 4 6077
3 6 8900
查询语句设计
select * from a ,(select * from b b1
where not exists (select 1 from b b2 where b1.name_id=b2.name_id and b1.id >b2.id))
where a.id=b.name_id
个人对上述查询的理解
把 not exists 换成 not in 来理解下
select * from b b1
where not in(select 1 from b b2 where b1.name_id=b2.name_id and b1.id >b2.id))
再把not in 换成in 来考虑下
select * from b b2 where b1.name_id=b2.name_id and b1.id >b2.id
再把上述语句转换成内连接查询来考虑下
select b1.id,b1.name_id,b2.id from b b1, b b2
where b1.name_id=b2.name_id
b1.idb1.name_idb2.id111112113211212213311312313424425524525636上表就是我们连接查询得到的结果,通过筛选条件 b1.id>b2.id得到的结果即为红色标记部分的结果
现在考虑
not in 的作用了,这里我们就当成整条记录 作为not in 的主语
理解 select * from b b1 where not in (红色标记部分组合成的结果)可以简单理解为,从表b的 6条记录中取出 不是红色标记的部分,
即从表B中去掉(id=2 and name_id=1)( id=3 and name_id=1)( id=5 and name_id=2) 这3条记录。
感觉我把这玩意弄复杂了。
- A/B表替1对多关系,要求联合查询B表只提取一条与A记录关联的记录
- A/B表为1对多关系,要求联合查询B表只提取一条与A记录关联的记录
- 删除b表中与a表不同的记录
- MYSQL查询A表不在B表中的记录
- 找出A表比B表多的记录
- 查询A表B表同时存在记录, A表存在而B表不存在记录, B表存在而A表不存在记录
- SQL语句 删除表user 中字段name 内容重复的记录,A表 ,B表 字段相同 有关联关系的表 对表两个表中的数据
- oracle 关联 A表与B表关联,A->B 一对多
- 数据库 a表左连接b表,a中一条数据对应b中多条数据,如何只取b表中createDate最大的一条
- [记录]Java 经典的a+b
- 有两张表,结构相同,写一条sql语句,将表A里不同内容的记录复制到表B里
- A,B两个表中,根据A表单号,查询所有B表中关联原单号的分单记录是否审核完毕,全部审核完毕则显示订单所有信息,否则不显示。
- [面试题] 查询表a在另外一张表b不存在的记录
- MySQL----删除B表中A表不存在的记录
- 在A列中找出与B列相同的数据记录并标记为1
- bomb 多对多关系 查询问题:1)查询用户A所订阅的所有频道 2)查询订阅了频道B的所有用户
- 查询A表在关联B中是否有没有关联到的数据
- 内连接查询 (select * from a join b on a.id = b.id) 与 关联查询 (select * from a , b where a.id = b.id)的区别
- 习题3—17
- MFC 界面部件大小位置自适应 EasySize的使用
- Android相关书签
- nodejs读取url中格式为数组的参数
- 第三章第10题
- A/B表替1对多关系,要求联合查询B表只提取一条与A记录关联的记录
- nyoj257郁闷的c小加(一)(栈和队列)
- UVA11806容斥原理,位运算排列,递推组合数
- <ARM嵌入式开发学习>我的第一个驱动程序-hello world
- Python中关于with open file as 的用法
- Custom SharePoint Web Template define element in onet.xml
- 完善-- iOS之键盘挡住输入框的解决方法
- HDU1075——What Are You Talking About
- Keepalived 安装与配置