0
我試圖合併2個表如下左連接有重複鍵在右表
SELECT * FROM T1
LEFT JOIN T2 ON T1.EMPnum = T2.EMPnum
上述作品很好,但我需要的加入只使用公共密鑰EMPnum
首次亮相在表T2記錄,因此該查詢返回完全相同相同的行數爲T1
由於阿維
我試圖合併2個表如下左連接有重複鍵在右表
SELECT * FROM T1
LEFT JOIN T2 ON T1.EMPnum = T2.EMPnum
上述作品很好,但我需要的加入只使用公共密鑰EMPnum
首次亮相在表T2記錄,因此該查詢返回完全相同相同的行數爲T1
由於阿維
SQL表本質上是無序的,所以有不是「第一」鍵。在大多數數據庫,你可以做這樣的事情:
with t2 as (
select t2.*, row_number() over (partition by EMPnum order by id) as seqnum
from t2
)
select *
from t1 left join
t2
on t1.EMPnum = t2.EMPnum and t2.seqnum = 1;
這裏id
僅僅是指定排序任何列。如果不存在,則可以使用EMPnum
來獲取任意行。
您正在使用哪些DBMS? Postgres的?甲骨文? – 2014-11-25 12:01:22
您可以將*更改爲特定的字段列表。例如T1.somefield,T1.someotherfield等... – kevchadders 2014-11-25 12:01:43
什麼是「第一次出現」?只有任何一個匹配的行?或者是否有一些您想要考慮的具體訂單? – 2014-11-25 12:03:51