我有两张table
主人
MasterID PaperID Version PaperName
1 ISBN-1X 1 Medical Research
2 ISBN-1X 2 Medical Research(2)
3 ISBN-1X 3 Medical Research(2.1)
4 ISBN-2X 1 Some Research(1.0)
5 ISBN-3X 1 Unpublished Research(0.0)
论文作者
MasterId AuthorName
1 ABC
2 XYZ
4 LMN
注意:只有当author表的author与以前的版本不同时,才能获取条目。否则纸质版本在母版中更新,作者保持不变。
我如何得到最新版本的论文与最后更新作者
预期结果
MasterID PaperID Version PaperName AuthorName
3 ISBN-1X 3 Medical Research(2.1) XYZ
4 ISBN-2X 1 Some Research(1.0) LMN
5 ISBN-3X 1 Unpublished Research(0.0)
我的尝试:
Select M.MasterID, M.PaperID ,M.Version, M.PaperName, A.AuthorName
From Master M
Inner Join
(select PaperID , max(version) maxversion from Master group by PaperID ) M1
on m1.PaperID = M.PaperID AND M1.maxversion = M.Version
left join PaperAuthor A on M.MasterID = A.MasterID
演示
3条答案
按热度按时间8hhllhi21#
你可以用一个
join
以及一些窗口功能:它使用
with ties
获取最新版本而不需要附加子查询的技巧。这是一把小提琴。
baubqpgj2#
用下列方法尝试
row_number
,这是演示。输出:
wlzqhblo3#
你可以试试下面的查询。它将最近的作者与每个isbn的最新图书数据对应起来。
更新:如果你想要空作者也