[英]Join one table with only 1 first matching record
--------------------Table1-------------
Table1Id item SaleId Dimensions
1 test1 41 10*11*12
2 test2 41 13*14*15
--------------------Table2-------------
Table2Id item Description
1 test1 Test element1 desc 1
2 test1 Test element1 desc 2
3 test2 Test element2 desc 1
4 Test2 Test element2 desc 2
目前,我正在使用以下查詢。
select Table1.Table1Id, Table1.item, Table1.Dimensions, Table2.Description
on Table1.item = Table2.item
where Table1.SaleId = 41
但是我想要這樣的結果(需要將Table1.item與針對Table2中項目的第一條記錄結合起來)
Result :
Table1Id item Dimensions Description
1 test1 10*11*12 Test element1 desc 1
2 test2 13*14*15 Test element2 desc 1
解決此問題的最典型方法是使用ANSI標准的row_number()
:
Select t1.Table1Id, t1.item, t1.Dimensions, t2.Description
from table1 t1 join
(select t2.*, row_number() over (partition by t2.item order by t2.table2id desc) as seqnum
from table2 t2
) t
on t1.item = t2.item and t2.seqnum = 1
where t1.SaleId = 41;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.