我想要加入两个表,每个表都有一个唯一的ID。第一个表每个唯一ID有一个记录,第二个表每个唯一ID有许多记录。在连接结果集中,我希望表中有一条记录,每个唯一ID有许多记录。什么记录无关紧要。
一个记录/唯一值
-----------------------
id|other values
1 | blah
2 |blah
3 |blah
mutliple记录/唯一值
-----------------------------
id|code
1 | bv11
1 | bv11
1 | bv11
期望的结果
--------------
id|code
1 | bv11
2 |bv12
答案 0 :(得分:2)
这是一种方法,您可以从每个tabl获得所需的多个字段:
select u.*, m.code
from Unique u left outer join
(select m.*, row_number() over (partition by id order by (select NULL)) as seqnum
from Multiple m
) m
on u.id = m.id and
m.seqnum = 1;
答案 1 :(得分:0)
我可以想到的最简单的方法是将表1连接到表2的分组,在这里您按ID分组并获取所需的每个其他列的最小值。
像
这样的东西select a.id, bx.code from a, (select id, min(code) from b group by id) bx
where a.id = bx.id
答案 2 :(得分:0)
SELECT TM.id,
TM.code
FROM TABLE_UNIQUE TU
INNER JOIN TABLE_MULTIPLE TM ON
TU.id = TM.id
GROUP BY TM.id, TM.code