一个苦思不解的SQL查询,请高手解答下
有A表和B表
A表有AID ANAME
B表有ID BID DATETIME
AID是A表主键
ID是B表的 主键
AID和BID存在关联
我想实现将B表按最近时间的一条记录匹配A表中的记录,A表中所有记录都会被查出,我之前用 下面语句只能查出A和B都有对应的记录
SELECT * FROM A,B WHERE B.DATETIME=(SELECT MAX(DATETIME) WHERE A.AID=B.BID) AND A.AID=B.BID
SELECT * FROM A left join
(select * from B t where not exists(select 1 from B where BID=t.BID and [DATETIME
]>t.DATETIME
)) n
on A.AID=n.BID
select m.* , n.*
from a m left join b n
on m.AID = n.BID and n.DATETIME = (select max(DATETIME) from b where bid = n.bid)
select m.* , n.*
from a m left join b n
on m.AID = n.BID and not exists (select 1 from b where bid = n.bid and DATETIME > n.DATETIME)