簡體   English   中英

聯接一個只有1個第一條匹配記錄的表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM