A表为主表(问题表),B表示关联表(答案表),A表中一个问题对应B表中多个回答,如A Ba1,... b1,a1,Time b2,a1,Timeselect * from A left join B on A.a1=B.a1查出来肯定是两个记录,怎么编写sql查询A,关联上B表中最新的一条记录.
8 回答
守着一只汪
TA贡献1872条经验 获得超3个赞
select * from A inner join (select table1.* from b table1 inner jioin b table2 on table1.a1 = table2.a1 and table1.Time>table2.Time) tableB inner join on A.a1=tableB.a1
繁星点点滴滴
TA贡献1803条经验 获得超3个赞
select * from A as a left join (select * from B where B.Time in (select MAX(B.Time) as Time from B group by B.a1)) as b on a.a1=b.a1
HUWWW
TA贡献1874条经验 获得超12个赞
SELECT A.*, B2.* FROM A
CROSS APPLY
(
SELECT TOP 1 B.*
FROM B
WHERE B.a1 = A.a1
Order by B.Time Desc
) B2
沧海一幻觉
TA贡献1824条经验 获得超5个赞
可以使用with as
WITH temp AS
(
SELECT MAX(UpdateTIME) AS updatetime,a1 FROM dbo.tableb GROUP BY Question
)
SELECT * FROM dbo.tablea
INNER JOIN temp ON dbo.tablea.a1 = temp.a1
- 8 回答
- 0 关注
- 551 浏览
添加回答
举报
0/150
提交
取消