我有两张桌子,A和B.
它们由一个名为id的公共字段连接在一起。表B还有一个字段post_code和一个附加到该post_code的日期,这意味着post_code第一次输入到数据库中。
我需要选择最新的邮政编码并将其连接到表A上的一行而没有子查询。
我有一个带有子查询的解决方案,但它花了太长时间
TIA
答案 0 :(得分:1)
您可以尝试使用APPLY
Create Table #A(Id int)
Create Table #B(Id int, AId int, PostCode VARCHAR(10), DateAdded DATE)
Insert into #A
Values(1),(2)
Insert into #B
Values(1,1,'NW1', GETDATE()-100),
(2,1,'S20', GETDATE()-200)
Select *
From #A A
CROSS APPLY(SELECT TOP 1 B.*
FROM #B B
WHERE A.Id = B.AId
ORDER BY DateAdded DESC) Latest