主表A,子表B,A表一对多B表,求显示A所有字段,B表字段时间M最大的一条数据的字段N,求SQL
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了主表A,子表B,A表一对多B表,求显示A所有字段,B表字段时间M最大的一条数据的字段N,求SQL相关的知识,希望对你有一定的参考价值。
参考技术A 可以这样select A.*,B.N from A,B where A.col1 = b.col1 and b.M = (select max(M) from B where B.col1 = A.col1)
另外如果A中有但B中没有的也要显示的话可以改为左外连接
select A.*,B.N from A left join B on A.col1 = b.col1 where b.M = (select max(M) from B where B.col1 = A.col1) 参考技术B select * from A
left join (select B.id,max(M) from B group by B.id) t1
on A.id=t1.id 参考技术C 只能根据你写的 猜测你要的结果
select a.*,b.N from A a inner join (select top 1 关联字段,N from B order by M desc ) b on a关联字段. = b.关联字段 参考技术D select *,( select n from b where m=(select max(m) from b where id=a.id) and rownum<2) from a
oracle数据库,如果sql的话,需要将rownum换成其他的,任意取一个
感觉有问题,M如果有重复怎么办?随便取一个吗?
根据子表的条件修改主表的数据
有这么一个需求:写一条sql语句,功能是当B表中的字段2值=X的时候,修改A表中的一个字段1=Y,SQL语句如下:
update A表 set A表.字段1 = Y from A表 inner join B表 on A表关联字段=B表关联字段 where B表.字段2=X
以上是关于主表A,子表B,A表一对多B表,求显示A所有字段,B表字段时间M最大的一条数据的字段N,求SQL的主要内容,如果未能解决你的问题,请参考以下文章