首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

一个苦思不解的SQL查询,请高手解答上

2012-12-29 
一个苦思不解的SQL查询,请高手解答下有A表和B表A表有AID ANAMEB表有IDBIDDATETIMEAID是A表主键ID是B表的

一个苦思不解的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)

[解决办法]
select * 
from a
left join b
on a.AID = b.BID
and b.DATETIME=(SELECT distinct MAX(DATETIME) WHERE a.AID=b.BID)

热点排行